迭代返回多个文件的行

2024-10-03 19:28:27 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个包含3个文本文件的文件名和全名的字典,所有的行数相同,N

dof = {'myf1':'/a/b/myf1.txt', 'myf2':'/a/b/myf2.txt', 'myf3':'/a/b/myf3.txt'}

迭代所有文件(每行如下所示)的最有效/最适合的方法是什么

line 1 of file 1, then line 1 of file 2, then line 1 of file 3;
line 2 of file 1, then line 2 of file 2, then line 2 of file 3;
...
line N of file 1, then line N of file 2, then line N of file 3; 

对于字典中任意数量的文件和任意数量的总行,最好采用通用解决方案。你知道吗


Tags: 文件of方法txt数量字典文件名line
1条回答
网友
1楼 · 发布于 2024-10-03 19:28:27

使用zip()以三元组的形式迭代行:

for line1, line2, line3 in zip(openfile1, openfile2, openfile3):

可以使用以下方法生成打开的文件句柄:

files = [open(dof[name]) for name in sorted(dof)]

for lines in zip(*files):

其中lines是字符串的元组,是每个输入文件的下一行。你知道吗

如果输入文件没有相同的行数,那么可以使用^{}来为缺少的行提供替换值(在python3中使用^{})。你知道吗

相关问题 更多 >