我的代码存在问题
我希望我的代码将用户命令创建的文件名返回给我的主程序,但我不知道如何,我已经尝试了返回文件名但是没有用,这里是代码:
#File Creator
def Create(filename):
UserFile = open(str(filename), "wt")
file = (str(filename))
return file
#Main program
Create(input("filename: "))
print(file)
我正在使用python 3.3,如何将文件设置为可以在代码中的任何位置使用的变量?
我在考虑添加file = Create(input("filename: "))
,但我不确定是否还有其他方式
答案 0 :(得分:3)
如何返回文件不起作用?虽然你在代码中有几个错误。试试这个,应该可以解决这个问题:
# File Creator
def create(filename):
userFile = open(filename, "rw")
return userFile # this is a file object
# Main program
theFile = create(input("filename: "))
print(str(theFile)) # string representation of the file object
无论如何,避免使用全局变量如果没有真正需要它们 - 全局变量是非常糟糕的编程实践。在这个简单的情况下,在一个结构良好的程序中将值作为参数和/或返回值传递就足够了。
答案 1 :(得分:0)
您可以使用global
:
def Create(filename):
global file
UserFile = open(str(filename), "wt")
file = (str(filename))
#return file -- I commented this since there is no real reason to return now with a global
file
现在将在全球范围内。
就个人而言,我认为file = Create(input("filename: "))
的方法是最好的。像这样使用全局变量是许多人不赞同的,而且经常可以避免。