如何打开文件,作为变量传递给open?

时间:2015-02-04 09:57:43

标签: python

def readfile(file):
    edges = [] # to contain tuples of all edges

    with open(file) as f: 
        for line in f:

我试图传入一个名为file的文本文件,然后阅读它,但它不起作用。即使我将文件转换为字符串,它也不起作用。 Python说

with open(file) as f: IOError: [Errno 22] invalid mode ('r') or
filename: "<type 'file'>"

如何打开文件,作为变量传递给open?

2 个答案:

答案 0 :(得分:1)

首先,由于file是python中的一个类型,你不应该将它用作变量名或文件名,其次你需要将文件名放在 quote open函数内部并注意open函数使用read mod作为默认值! :

with open('file_name.txt','r') as f: 
       for line in f:

答案 1 :(得分:1)

file重命名为filename,因为file是python的内置名称:

def readfile(filename):
    edges = [] # to contain tuples of all edges

    with open(filename) as f: 
        for line in f:

open()使用&#39; r&#39;作为默认模式。