1
我有一個文件(file.txt的):如何根據Python中的列對文本文件進行排序?包含以下數據
192.168.10.1/16, 22, 3265, tcp
172.144.32,2/34, 22, 21, udp
10.128.16.234/8, 0, 20, icmp
我需要通過cloumn [0],cloumn [1]和柱[2]
排序此我有一個文件(file.txt的):如何根據Python中的列對文本文件進行排序?包含以下數據
192.168.10.1/16, 22, 3265, tcp
172.144.32,2/34, 22, 21, udp
10.128.16.234/8, 0, 20, icmp
我需要通過cloumn [0],cloumn [1]和柱[2]
排序此我的解決方案是創建這樣的元組列表(一個元組每條線):
(data_in_column_of_interest, entire_line)
凡data_in_column_of_interest
是任何數據類型,entire_line
是字符串。
然後就對這個文件列表:包含文件:
def sortLinesByColumn(readable, column, columnt_type):
"""Returns a list of strings (lines in readable file) in sorted order (based on column)"""
lines = []
for line in readable:
# get the element in column based on which the lines are to be sorted
column_element= columnt_type(line.split(',')[column-1])
lines.append((column_element, line))
lines.sort()
return [x[1] for x in lines]
with open('G:/Ftest/data.txt') as f:
# sort the lines based on column 1, and column 1 is type int
sorted_lines = sortLinesByColumn(f, 1, int)
for l in sorted_lines:
print(l)
輸入
1, Bob, 123
5, Mary, 112
0, Allen, 2421
1, lucy, 341
輸出:一個字符串列表:
0, Allen, 2421
1, Bob, 123
1, lucy, 341
5, Mary, 112
什麼是您預期的輸出? –
備註:在從函數返回之前,您需要調用'import_file.close()'。 –