python 根据每行末尾的 int 值对文本文件中的行进行排序
python to sort lines in a text file based on the int value at the end of each line
我有一个像这样的大文本文件:
train/1175-c/b0a5.bmp 45221
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1175-c/b0aa.bmp 45226
train/1172-c/b0a3.bmp 45219
train/1177-c/b0a4.bmp 45220
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1178-c/b0a1.bmp 45217
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0a7.bmp 45223
我想像下面这样排序并保存一个新文件?根据每行中的最后一个 int 值排序。
train/1178-c/b0a1.bmp 45217
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1172-c/b0a3.bmp 45219
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1177-c/b0a4.bmp 45220
train/1175-c/b0a5.bmp 45221
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a7.bmp 45223
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0aa.bmp 45226
编写一个函数并将其作为 key
关键字参数传递给 sorted
def trailing_digits(string):
return int(string.split()[-1])
iterable = '''train/1175-c/b0a5.bmp 45221
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1175-c/b0aa.bmp 45226
train/1172-c/b0a3.bmp 45219
train/1177-c/b0a4.bmp 45220
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1178-c/b0a1.bmp 45217
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0a7.bmp 45223'''.split('\n')
for x in sorted(iterable, key=trailing_digits):
print(x)
我有一个像这样的大文本文件:
train/1175-c/b0a5.bmp 45221
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1175-c/b0aa.bmp 45226
train/1172-c/b0a3.bmp 45219
train/1177-c/b0a4.bmp 45220
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1178-c/b0a1.bmp 45217
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0a7.bmp 45223
我想像下面这样排序并保存一个新文件?根据每行中的最后一个 int 值排序。
train/1178-c/b0a1.bmp 45217
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1172-c/b0a3.bmp 45219
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1177-c/b0a4.bmp 45220
train/1175-c/b0a5.bmp 45221
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a7.bmp 45223
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0aa.bmp 45226
编写一个函数并将其作为 key
关键字参数传递给 sorted
def trailing_digits(string):
return int(string.split()[-1])
iterable = '''train/1175-c/b0a5.bmp 45221
train/1175-c/b0a4.bmp 45220
train/1176-c/b0a4.bmp 45220
train/1176-c/b0a6.bmp 45222
train/1175-c/b0a1.bmp 45217
train/1173-c/b0a2.bmp 45218
train/1175-c/b0aa.bmp 45226
train/1172-c/b0a3.bmp 45219
train/1177-c/b0a4.bmp 45220
train/1177-c/b0a1.bmp 45217
train/1176-c/b0a1.bmp 45217
train/1178-c/b0a1.bmp 45217
train/1175-c/b0a8.bmp 45224
train/1175-c/b0a9.bmp 45225
train/1175-c/b0a7.bmp 45223'''.split('\n')
for x in sorted(iterable, key=trailing_digits):
print(x)