I have a big text file like this:
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
I want to sort it like the following and save a new file? sort based on the last int value in each line.
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
Write a function and pass it as the key
keyword argument to 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)