假设我有一个读取.txt文件的函数,并根据该文件中的数据列创建数组。我现在在函数内部看起来像:
data = open("some_file_name.txt","r")
但是如果我想更改函数读取的.txt文件,我必须手动进入代码并在再次运行之前键入新文件名。相反,我如何将任何文件名传递给函数,如下所示:
my_function(/filepath/some_file_name.txt):
data = open("specified_file_name.txt","r")
答案 0 :(得分:3)
我想你想要
def my_function(filepath):
data = open(filepath, "r")
...
然后
my_function("/filepath/some_file_name.txt")
或更好:
def my_function(data):
...
然后
with open("/filepath/some_file_name.txt", "rb") as data:
my_function(data)
后一版本允许您将任何类文件对象传递给my_function()
。
更新:如果你想获得想象并允许文件名或文件句柄:
def my_func(data):
if isinstance(data, basestring):
with open(data, 'rb') as f:
return my_func(f)
...