我有一个文本文件名称列表,作为python中的变量。 我要创建另一个文本文件,其中包含列表中文件的所有行,并且希望该文件按行排序。
如何使用python以最有效的方式做到这一点?
这等效于我要在bash中执行的操作:
cat file1.txt file2.txt file3.txt | sort -h >> combined_and_sorted.txt
答案 0 :(得分:0)
我创建了每个3行的简单文件。
我的解决方法是:
with open("file 1.txt", 'r') as f1, open("file 2.txt", 'r') as f2,open("file 3.txt", 'r') as f3:
with open("outfile.txt", 'w') as o:
files = [f1,'b',f2,'b',f3]
for i in files:
if i != 'b':
lines = i.readlines()
else:
lines = '\n'
o.writelines(lines)
说明:
所有要读取的文件都写在一个单句“ open(file_name,'r')”上。 “ r”代表阅读。
输出文件位于下一句'with open(“ outfile.txt”,'w')'
然后创建一个列表,其中包含文件的变量名和文件名之间的字母“ b”。因为格式问题,“ b”是故意放置的。
当“循环”找到文件(f1,f2,f3)时,它将获取文件行。否则,它将得到一个“ b”并添加一个换行符。
在该过程结束时,所有内容都将按照文件的顺序和文件中的行写入outfile.txt中,变量名称为'o'。
如果没有'b',则输出文件将如下所示:
file 1 line 1
file 1 line 2
file 1 line 3file 2 line 1
file 2 line 2
file 2 line 3file 3 line 1
file 3 line 2
file 3 line 3
使用我发布的代码,它的打印方式如下:
f = open("outfile.txt",'r')
print(f.read())
file 1 line 1
file 1 line 2
file 1 line 3
file 2 line 1
file 2 line 2
file 2 line 3
file 3 line 1
file 3 line 2
file 3 line 3