下面是我的文件列表。每个文件都以可写模式打开并压缩文本。 我的目标是将每个文本传输到压缩文件中。
file_list=[(<open file 'x', mode 'w' at 0x028F5758>, 'hi friend'), (<open file 'x', mode 'w' at 0x02943020>, 'whats your name?'), (<open file 'x', mode 'w' at 0x02943078>, 'you welcome')]
我的尝试:
paste_texts=[x[0].write(x[1]) for x in file_list]
print [open('x', 'r').read() for x in paste_texts]
输出:
['', '', '']
我检查了我的C盘上的文件,它们是空的,没有动过。有关如何将每个文本传输到相邻文件的任何建议吗?
答案 0 :(得分:1)
对此使用列表推导没有意义。
使用简单的for
循环:
file_names = 'hi_file.txt', 'name_file.txt', 'welcome_file.txt'
my_strings = 'hi friend', 'whats your name', 'you welcome'
for (text, fname) in zip(my_strings, file_names):
with open(fname, 'w') as f:
f.write(text)
编辑(参见评论):
for (text, f) in zip(my_strings, file_list):
f.write(text)