【发布时间】:2019-09-30 21:40:36
【问题描述】:
我需要按升序对文本文件进行排序。文本文件的每一行都以一个索引开头,如下所示:
2 0 4 0d 07:00:38.0400009155273
3 0 4 0d 07:00:38.0400009155273
1 0 4 0d 07:00:38.0400009155273
想法结果如下:
1 0 4 0d 07:00:38.0400009155273
2 0 4 0d 07:00:38.0400009155273
3 0 4 0d 07:00:38.0400009155273
请注意,这个文本文件有 +300 万行,每个元素自然被认为是一个字符串。
我已经搞砸了一段时间了,没有任何运气,所以我想是时候咨询专家了。谢谢你的时间!
编辑:
我在 Spyder IDE 中使用带有 Python 3.7 的 Windows 操作系统。该文件不是 CSV,它是一个以制表符分隔的文本文件。有可能并非所有索引都存在。原谅菜鸟,我没有很多编码经验。
【问题讨论】:
-
如果您在任何类 Unix 系统上:
sort -n /path/to/file -
在linux下运行,应该很快。排序 -o out.txt input.txt
-
你卡在哪里了?您发现了问题:每个索引自然被认为是一个字符串。因此,您必须将其转换为
int,然后进行排序。或者,正如@FMc 指出的那样,只需在您的 shell 中使用sort命令。 -
FYI 最好包括您“暂时搞砸这个”的尝试,这样我们就可以知道您具体尝试了什么以及为什么它不适合。否则我们最终可能会发布您已经尝试过的答案并浪费大家的时间。
标签: python python-3.x file sorting