2

我的代码有问题

我希望我的代码将用户命令创建的文件的名称返回给我的主程序,但我不知道如何,我试过返回文件名但没有用,这里是代码:

#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: ")),但我不确定是否有其他方法

4

2 回答 2

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

无论如何,如果没有真正需要全局变量,请避免使用它们 - 全局变量是一种非常糟糕的编程习惯。在这个简单的情况下,在一个结构良好的程序中将值作为参数和/或返回值传递就足够了,这应该足以满足您的需求。

于 2013-08-30T14:49:40.887 回答
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: "))是最好的。许多人不赞成使用这样的全局变量,并且通常可以避免使用。

于 2013-08-30T14:44:41.553 回答