首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TypeError:无法使用input()调用“str”对象

TypeError:无法使用input()调用“str”对象
EN

Stack Overflow用户
提问于 2019-05-14 03:19:32
回答 4查看 7.6K关注 0票数 2

我有以下代码,它应该询问用户2的文件名。我得到一个错误的输入()在第二个函数,但不是在第一个,我不明白…下面是错误:

output = getOutputFile()文件"splitRAW.py",第22行,in getOutputFile fileName = input("\t=> ") TypeError:'str‘对象不可调用

代码语言:javascript
复制
# Loops until an existing file has been found
def getInputFile():
    print("Which file do you want to split ?")
    fileName = input("\t=> ")
    while 1:
        try:
            file = open(fileName, "r")
            print("Existing file, let's continue !")
            return(fileName)
        except IOError:
            print("No such existing file...")
            print("Which file do you want to split ?")
            fileName = input("\t=> ")

# Gets an output file from user
def getOutputFile():
    print("What name for the output file ?")
    fileName = input("\t=> ")

下面是我的main():

代码语言:javascript
复制
if __name__ == "__main__":
    input = getInputFile()
    output = getOutputFile()
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-05-14 03:30:55

问题是当你说input = getInputFile()的时候。

更确切地说:

  1. 程序进入getInputFile()函数,input尚未赋值。这意味着Python解释器将按照您的意图使用内置的input
  2. 返回filename并退出getInputFile()。解释器现在将名称input重写为该字符串。
  3. getOutputFile()现在尝试使用input,但已被替换为您的文件名字符串。你不能调用字符串,所以解释器会告诉你并抛出一个错误。

尝试用其他变量替换input = getInputFile(),比如fileIn = getInputFile()

此外,您的getOutputFile()不会返回任何内容,因此您的output变量中将只包含None

票数 5
EN

Stack Overflow用户

发布于 2020-07-24 21:38:21

您可能正在用其他内容覆盖输入的名称。

如果您需要在notebook中重新初始化输入函数:

代码语言:javascript
复制
from builtin import input
票数 1
EN

Stack Overflow用户

发布于 2020-01-12 18:44:56

下一次只需"RESTART YOUR KERNEL“TypeError:'str‘对象是不可调用的-重启内核,它就消失了。你可以走了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56118639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档