如何将.txt文件作为函数参数传递

时间:2014-06-18 18:38:08

标签: function python-2.7 filepath

假设我有一个读取.txt文件的函数,并根据该文件中的数据列创建数组。我现在在函数内部看起来像:

data = open("some_file_name.txt","r")

但是如果我想更改函数读取的.txt文件,我必须手动进入代码并在再次运行之前键入新文件名。相反,我如何将任何文件名传递给函数,如下所示:

my_function(/filepath/some_file_name.txt):
    data = open("specified_file_name.txt","r")

1 个答案:

答案 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)
    ...