python - 如何在将数字嵌入其他字符串的同时对文本文件进行数字排序
问题描述
嗨,我正在寻求按数字顺序对文本文件进行排序的帮助,我找到了如何对文本文件进行数字排序?它向我展示了如何对数字进行排序,但在我的文本文件中,我将数字与其他非数字字符放在一起。
我的文本文件可能如下所示:
Username1, 78 pts
Username2, 64 pts
Username3, 98 pts
Username4, 81 pts
Username5, 43 pts
Username6, 56 pts
用户名会有所不同,这些只是占位符
我尝试使用每行前面的数字进行排序,但由于上面链接的答案将整行转换为整数,我只会收到一个错误。如果有人知道如何仅使用那些将不胜感激的数字对所有整行进行排序。谢谢,乔
解决方案
干得好:
#!/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
推荐阅读
- java - ActiveMQ Artemis 只向组中的一台服务器广播发送消息
- pine-script - & 条件不工作 - 新手问题 tradingview pinescript
- firebase - 使用 Google 和 Firebase 反应原生身份验证
- r - 如何避免 ggplot 在 R 中的因子内分组
- lua - 如何获得最近的玩家(FiveM Lua)
- postgresql - Postgres StatefulSet 已成功创建 - 但尚未准备好
- c# - 在 Xamarin.Forms 中将 StringFormat 1000000 标记为 1.000.000
- laravel - 如何在 laravel 5.6 的 with() 块中使用 Eloquent 列名?
- sql - 与普通查询相比,Oracle 存储过程需要更多时间
- django - AttributeError:“ModelChoiceField”对象没有属性“规范”