我有一个文本文件列表file1.txt, file2.txt, file3.txt .. filen.txt
,我需要重新整理创建一个单独的大文件作为结果*。在
要求:
1给定文件的记录在进行无序处理之前需要反转
2给定文件的记录在目标文件中应保持相反的顺序
三。我不知道需要洗牌多少个文件,所以代码应该尽可能通用(例如允许在列表中声明文件名)
4文件可能有不同的大小
示例:
File1.txt --------- File1Record1 File1Record2 File1Record3 File1Record4 File2.txt --------- File2Record1 File2Record2 File3.txt --------- File3Record1 File3Record2 File3Record3 File3Record4 File3Record5
输出应该如下所示:
ResultFile.txt -------------- File3Record5 -| File2Record2 | File1Record4 | File3Record4 -| File2Record1 | File1Record3 |-->File3 records are shuffled with the other records and File3Record3 -| are correctly "reversed" and they kept the correct File1Record2 | ordering File3Record2 -| File1Record1 | File3Record1 -|
*我不是疯了;我必须使用结果文件.txt作为输入
编辑:
结果可以是任何你想要的,完全或部分洗牌,均匀交织,这并不重要。重要的是第1点。和2。都很荣幸。在
这个呢:
你可以用不同的方式来优化它,但这是一般的想法。如果您不能一次读取文件,但由于内存限制而需要迭代这些文件,也可以使用这种方法。那样的话
这里有一点似乎很神奇:从文件中读取的行不需要反转,因为当我们将它们写入输出文件时,我们使用
list.pop()
,它从列表的末尾获取项目(这里是文件的内容)。在您可以尝试以下操作:在第一步中,
zip()
列表中的reversed()
项:然后,您可以再次连接zipped中的项目:
^{pr2}$最后,您必须删除由
zip()
添加的所有None
相关问题 更多 >
编程相关推荐