我有以下代码,应该询问用户2文件名。我在第二个函数中遇到了input()的错误,但在第一个函数中却没有,我不明白...
这是错误:
# 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()
最佳答案
问题是当您说input = getInputFile()
时。
进一步来说:
getInputFile()
函数,但尚未分配input
。这意味着Python解释器将按照您的预期使用内置的input
。 filename
并退出getInputFile()
。现在,解释器将名称input
覆盖为该字符串。 getOutputFile()
现在尝试使用input
,但是已被您的文件名字符串替换。您不能调用字符串,因此解释器会告诉您并抛出错误。 尝试将
input = getInputFile()
替换为其他变量,例如fileIn = getInputFile()
。另外,您的
getOutputFile()
不返回任何内容,因此您的output
变量将仅包含None
。