'对于文件名中的文件名:'导致IOError:[Errno 2]没有这样的文件或目录:'t'python [duplicate]

问题描述 投票:0回答:3

我想在一个文件中添加两个或更多文件以及所有信息。我的代码是:

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())

当我打电话把所有文件都这样:

add_file('turnstile_170603.txt','out.txt')

节目:

IOError:[Errno 2]没有这样的文件或目录:'t'

为什么?我做错了什么?

python file iteration
3个回答
2
投票

你传递了一个字符串作为filenames,函数用字符迭代它。传递一个列表。将函数从add_file重命名为add_files可能更好。

小心out.txt;如果你想多次调用这个函数,你应该以追加模式而不是'w'模式打开它。


0
投票

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


0
投票
for filename in filenames:

上面的行是通过你的第一个参数迭代一个,这恰好是一个字符串。

当你拨打这一行时

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

'filename'是文件名中的项目。一旦到达字符串的第一个字母,就会发生错误。

© www.soinside.com 2019 - 2024. All rights reserved.