我试图从n个文件中读取行。然后我将把所有数据打印到一个文件中。棘手的是我不知道dir包含多少个文件,我想把它打印出来,这样每个文件都有自己的列。 示例:(text是一些我不关心的数据,可以使用split获取[1])
File 1 contains:
text Line1
text Line2
text Line3
文件2包含:
^{pr2}$我想合并这个文件:
File 1 File 2
Line1 Line01
Line2 Line02
Line3 Line03
我遇到的一个问题是,当我读取这些文件时,我一次只读取一个文件,并将每一行追加到一个列表中,但是如何以我想要的方式打印出来呢。在
fromfiles = ['Line1','Line2','Line3','Line01','Line02','Line03']
或者
fromfiles2 = [['Line1','Line2','Line3'],['Line01','Line02','Line03']]
在case formfiles中:如何同时打印line1和line01,然后继续?在
在caseformfiles2中:确实存在与上面相同的问题。我需要同时访问多个元素,而不知道列表中有多少项,然后打印出所有内容。在
如果有人能帮我解决这个问题,我将不胜感激。在
^{} 就是为了这个!让我们从您的
fromfiles2
开始:这就是
^{pr2}$zip
的基本工作原理:当然,这也适用于两个以上的参数:-)。在
当文件很小时,这是一个很好的方法。然后,您可以安全地将它们读入内存,合并内存中的数据,然后将合并的数据写入输出文件。但是,如果您的输入确实很大(GB的数据),那么您应该同时逐行读取输入文件,构建一个输出行,将其写入文件,然后再继续输入文件中的下一行。在
如果您有了
zip
的概念,那么您可以研究itertools.izip
来提高内存效率:{a2如果不想查看相同数量的文件},可能还需要查看}
当您读取每个文件时,请保持查找在文件中遇到的最大行数(可能使用len())。在
使用第二种解决方案,迭代每个行号1到全局最大值。如果该文件存在行条目,则打印它;否则,跳过它。在
像在fromfiles2中那样保存它。。。列表列表。在
然后检查最大行数(所有列表中最大的.count())。在
然后像这样从0到
<<maximum number of lines -1>>
进行for循环(伪代码):注意:您必须检查索引[j][i]是否存在,因为文件的长度不会相同。在
相关问题 更多 >
编程相关推荐