2017-08-10 45 views
0

我想添加两个或更多的文件在一个文件中的所有信息。我的代码是:IOError:[Errno 2]没有这样的文件或目录:'t'python

def add_file(filenames, output_file): 
    with open(output_file, 'w') as master_file: 
     master_file.write('C/A,UNIT,SCP,DATEn,TIMEn,DESCn,ENTRIESn,EXITSn\n') 
     for filename in filenames: 
      with open(filename, 'r') as infile: 
       master_file.write(infile.read()) 

当我打电话把所有文件 显示:

IOError: [Errno 2] No such file or directory: 't'

为什么?我做错了什么?

+1

您正在为'filenames'传入一个字符串,因此它会遍历字符串 – Wondercricket

回答

1

您传递了一个字符串作为filenames,并且该函数通过字符迭代它。代之以传递一个列表。将函数从add_file重命名为add_files可能会更好。

小心out.txt;如果您想要多次调用此函数,则应该在追加模式而不是“w”模式下打开它。

+0

或其他一些迭代。 –

0

您正在为filenames传递一个字符串,所以函数会在字符串中迭代它。通过一个列表来解决这个问题。

0
for filename in filenames: 

上面的代码行在您的第一个参数中迭代一次,这恰好是一个字符串。

当调用此行

with open(filename, 'r') as infile: 

“名”是在文件名中的项目存在什么。一旦达到字符串的第一个字母,就会发生错误。

相关问题