我有以下代码,它应该询问用户2的文件名。我得到一个错误的输入()在第二个函数,但不是在第一个,我不明白…下面是错误:
output = getOutputFile()文件"splitRAW.py",第22行,in getOutputFile fileName = input("\t=> ") TypeError:'str‘对象不可调用
# 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():
if __name__ == "__main__":
input = getInputFile()
output = getOutputFile()
发布于 2019-05-14 03:30:55
问题是当你说input = getInputFile()
的时候。
更确切地说:
getInputFile()
函数,input
尚未赋值。这意味着Python解释器将按照您的意图使用内置的input
。filename
并退出getInputFile()
。解释器现在将名称input
重写为该字符串。getOutputFile()
现在尝试使用input
,但已被替换为您的文件名字符串。你不能调用字符串,所以解释器会告诉你并抛出一个错误。尝试用其他变量替换input = getInputFile()
,比如fileIn = getInputFile()
。
此外,您的getOutputFile()
不会返回任何内容,因此您的output
变量中将只包含None
。
发布于 2020-07-24 21:38:21
您可能正在用其他内容覆盖输入的名称。
如果您需要在notebook中重新初始化输入函数:
from builtin import input
发布于 2020-01-12 18:44:56
下一次只需"RESTART YOUR KERNEL“TypeError:'str‘对象是不可调用的-重启内核,它就消失了。你可以走了。
https://stackoverflow.com/questions/56118639
复制相似问题