【发布时间】:2020-01-05 11:04:12
【问题描述】:
我已将命令的输出转储到一个文本文件中,该文件包含多列结果多行。 第一列包含设备 ID,第二列包含时间(UTC)
我想根据增加的时间顺序(设置时间)对行进行排序。该怎么做?
这是我的命令输出(转储到文本文件):
Equipment ID | Setup Time - GPS (UTC) | End Time - GPS (UTC)
3 | 2068512564500 (2019-08-30 22:22:26.500 UTC) | 2068513054300 (2019-08-30 22:30:36.300 UTC)
2 | 2068506579500 (2019-08-30 20:42:41.500 UTC) | 2068507041300 (2019-08-30 20:50:23.300 UTC)
2 | 2068513133500 (2019-08-30 22:31:55.500 UTC) | 2068513614300 (2019-08-30 22:39:56.300 UTC)
3 | 2068506038500 (2019-08-30 20:33:40.500 UTC) | 2068506399300 (2019-08-30 20:39:41.300 UTC)
1 | 2068512827500 (2019-08-30 22:26:49.500 UTC) | 2068512852300 (2019-08-30 22:27:14.300 UTC)
【问题讨论】:
-
将文本从文件读取到内存,将文本拆分为行(
split("\n")),将每一行拆分为单元格(split("|")),使用第二列对所有数据进行排序(sort(),sorted()),将其写回文件。 -
您可以使用模块
pandas并使用read_csv()和|作为分隔符将其读取到DataFrame。然后你可以在DataFrame中排序并用to_csv()写回 -
在您的场景中,如何将输出通过管道传输到 .csv 文件?使用“|” char 作为其分隔符并使用 pythons csv 模块读取文件。
-
在 Bash 中的 Linux 上,您可以执行
cat example.txt | sort -k 2,但它会将标头移到末尾。您必须使用head、tail将标题保持在顶部:Is there a way to ignore header lines in a UNIX sort?
标签: python python-2.7 sorting