我有一些类似于 ls -l 的输出,即
drwxr-x---. 2 root root 4.0K Nov 10 2014 sudoers.d
----------. 1 root root 1.1K Nov 18 15:12 shadow-
-rw-r--r--. 1 root root 1.7K Jan 13 21:18 motd
drwxr-xr-x. 2 root root 4.0K Feb 13 15:29 snmp
使用 python 将日期/时间转换为某种可用格式(YYMMDD、纪元等)以进行排序的最佳方法是什么?
不幸的是,我无法更改给出的输出,所以必须使用它。
我确信这个问题之前已经解决了,但我似乎找不到解决方案。如您所见,格式为:
%b %d %H:%M
除非它早于 6 个月前,在这种情况下
%b %d %Y
我还没有尝试在代码中解决这个问题,因为我真的希望我在某处遗漏了一些实用函数,因为它是一种有点常见的格式。
请您参考如下方法:
对于每一行,抓取第四和第七组空格之间的所有文本,这样您就有了一个字符串数组,例如:
"Nov 10 2014""Nov 18 15:12"等。您可以使用正则表达式捕获此文本。接下来,测试数组的每个元素是否包含一个
:。这将告诉您是使用"%b %d %H:%M"还是"%b %d %Y"将
datetime.strptime与上述条件日期格式一起使用。
