python读取2个文件,忽略header(#开头行),对数据进行排序
python read 2 files, ignore header (# beginning line), and sort data
如何一次读取两个文件,忽略 # 行,并根据它们的第 2 列值对它们进行排序?
我在考虑结合使用 .startswith(): 和 sorted(): 命令
file1 = [line for line in open("file1.txt",'r').readlines() if not line.startswith("#")]
file2 = [line for line in open("file2.txt",'r').readlines() if not line.startswith("#")]
sorted_file1 = sorted(file1, key=lambda line: int(line.split()[1]))
sorted_file2 = sorted(file2, key=lambda line: int(line.split()[1]))
do something fun using sorted files with for and if
我的文件很简单。文件 1 的值类似于
AAA 15125
BBB 69121
CCC 366161
....
文件 2 看起来像
bkjnwg 11111
knksng 22155
bnkiop 13511
...
但是我觉得这段代码有些奇怪。如何更简单地阅读、忽略#和排序文件?
谢谢
最佳,
根据评论进行了编辑。
你可以这样做:
files_to_do = [...] #put paths in here
for f in files_to_do:
lines = [line for line in open(f,'r').readlines() if not line.startswith("#")]
sorted_lines = sorted(lines, key=lambda line: int(line.split()[1]))
#party
如何一次读取两个文件,忽略 # 行,并根据它们的第 2 列值对它们进行排序?
我在考虑结合使用 .startswith(): 和 sorted(): 命令
file1 = [line for line in open("file1.txt",'r').readlines() if not line.startswith("#")]
file2 = [line for line in open("file2.txt",'r').readlines() if not line.startswith("#")]
sorted_file1 = sorted(file1, key=lambda line: int(line.split()[1]))
sorted_file2 = sorted(file2, key=lambda line: int(line.split()[1]))
do something fun using sorted files with for and if
我的文件很简单。文件 1 的值类似于
AAA 15125
BBB 69121
CCC 366161
....
文件 2 看起来像
bkjnwg 11111
knksng 22155
bnkiop 13511
...
但是我觉得这段代码有些奇怪。如何更简单地阅读、忽略#和排序文件?
谢谢
最佳,
根据评论进行了编辑。
你可以这样做:
files_to_do = [...] #put paths in here
for f in files_to_do:
lines = [line for line in open(f,'r').readlines() if not line.startswith("#")]
sorted_lines = sorted(lines, key=lambda line: int(line.split()[1]))
#party