【发布时间】:2018-01-22 23:09:34
【问题描述】:
我作为初学者正在学习 Python,并且有一个我无法弄清楚的问题。我需要编写函数以允许用户设置/给文件命名,然后输入内容。
我得到的错误信息是:"Str' object is not callable。我不知道如何解决这个问题。请你帮帮我。非常感谢!
代码如下:
==========================================
WRITE = "w"
APPEND = "a"
fName = ""
def fileName(): #to define name of the file.
fName = input("Please enter a name for your file: ")
fileName = open(fName, WRITE)
return fileName
#now to define a function for data entry
dataEntry = ""
def enterData():
dataEntry = input("Please enter guest name and age, separated by a coma: ")
dataFile = open(fName, APPEND(dataEntry))
fName.append(dataEntry)
return dataFile
#to determine if it's the end of data entry
moreEntry = input("Anymore guest: Y/N ")
while moreEntry != "N":
enterData() #here to call function to repeat data entry
fName.close()
fileName()
enterData()
print("Your file has been completed!")
fileContents = fName.readline()
print(fileContents)
【问题讨论】:
-
使用跟踪显示确切的错误。您正试图在某处将字符串视为函数。
-
fileName = open(fName, WRITE)正在用字符串覆盖您的函数名称;您将变量和函数命名为同一件事。我不会认为这会持续到全球范围内,但它似乎是。我会写一个答案,但在 Python 范围界定方面我显然生疏了,所以我无法给出很好的解释。 -
请发布完整的 Traceback。你应该得到其他错误。这是您遇到问题的确切代码吗?
标签: python function file for-loop writing