首页 > 解决方案 > 如何在将数字嵌入其他字符串的同时对文本文件进行数字排序

问题描述

嗨,我正在寻求按数字顺序对文本文件进行排序的帮助,我找到了如何对文本文件进行数字排序?它向我展示了如何对数字进行排序,但在我的文本文件中,我将数字与其他非数字字符放在一起。

我的文本文件可能如下所示:

Username1, 78 pts
Username2, 64 pts
Username3, 98 pts
Username4, 81 pts
Username5, 43 pts
Username6, 56 pts

用户名会有所不同,这些只是占位符

我尝试使用每行前面的数字进行排序,但由于上面链接的答案将整行转换为整数,我只会收到一个错误。如果有人知道如何仅使用那些将不胜感激的数字对所有整行进行排序。谢谢,乔

标签: pythonsorting

解决方案


干得好:

#!/usr/bin/env python3

with open('./test.txt', 'r') as fh:
  lines = [l.rstrip() for l in fh.readlines()]

lines = [x.split() for x in lines]
lines.sort(key=lambda x: x[1])
lines = [' '.join(x) for x in lines]

with open('./test.txt', 'w') as fh:
  fh.write('\n'.join(lines))

排序文件:

Username5, 43 pts
Username6, 56 pts
Username2, 64 pts
Username1, 78 pts
Username4, 81 pts
Username3, 98 pts

推荐阅读