Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python转换ls-l样式的日期_Python - Fatal编程技术网

python转换ls-l样式的日期

python转换ls-l样式的日期,python,Python,我有一些类似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 使用pyt

我有一些类似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、epoch等)进行排序的最佳方法是什么

不幸的是,我无法更改给定的输出,因此必须使用它

我相信这个问题以前已经解决了,但我似乎找不到解决办法。如您所见,格式为:

%b %d %H:%M 
除非它已经超过6个月了,在这种情况下

%b %d %Y
我还没有尝试在代码中解决这个问题,因为我真的希望有一些实用功能我在某些地方遗漏了,因为它是一种比较常见的格式

  • 对于每一行,获取第四组和第七组空格之间的所有文本,这样您就有了一个字符串数组,如:
    “Nov 10 2014”“Nov 18 15:12”
    等。您可以使用正则表达式捕获此文本

  • 接下来,测试数组的每个元素是否包含
    。这将告诉您是使用
    %b%d%H:%M“
    还是
    %b%d%Y”

  • datetime.strtime
    与上述条件日期格式一起使用

  • 对于每一行,获取第四组和第七组空格之间的所有文本,这样您就有了一个字符串数组,如:
    “Nov 10 2014”“Nov 18 15:12”
    等。您可以使用正则表达式捕获此文本

  • 接下来,测试数组的每个元素是否包含
    。这将告诉您是使用
    %b%d%H:%M“
    还是
    %b%d%Y”

  • datetime.strtime
    与上述条件日期格式一起使用


  • 使用glob和os.path.getmtime将为您解决此问题

    import os
    import glob
    # get the current working dir
    path = os.getcwd()
    files = glob.glob('%s/*' % path)
    for file in files:
        #gets the modified time in epochs
        mtime = os.path.getmtime(file)
        print file, mtime
    

    使用glob和os.path.getmtime将为您解决此问题

    import os
    import glob
    # get the current working dir
    path = os.getcwd()
    files = glob.glob('%s/*' % path)
    for file in files:
        #gets the modified time in epochs
        mtime = os.path.getmtime(file)
        print file, mtime
    

    请回答您的问题并包括您尝试过的内容。它有效吗?我不明白你想做什么。@YogendraSharma如前所述,我想将字符串日期格式转换为一种可用的排序格式,最好是通过一些简单的函数,如strtime。请回答你的问题,并包括你尝试过的内容。它能工作吗?我不明白你想做什么。@YogendraSharma如前所述,我想将字符串日期格式转换为一种可用的排序格式,最好是通过一些简单的函数,如strtime。此解决方案假设OP可以访问生成输出的操作系统,而这并不是他所要求的,这似乎是一个毫无根据的假设,因为他说“我无法更改所提供的输出,很遗憾,因此必须使用它。”否则,我同意这是理想的方法。此解决方案假设OP可以访问生成输出的操作系统,而这并不是他所要求的,这似乎是一个毫无根据的假设,因为他说“很遗憾,我无法更改给定的输出,因此必须使用它。”否则,我同意这是一个理想的方法。谢谢,是的,如果我必须对其进行编码的话,这些就是我一直在思考的问题-希望有一些现有的函数(是的,我很懒!)当然,如果在前6个月(如果我在一年的前6个月,那么是当前的还是之前的),我也会担心增加一年。谢谢,是的,如果我必须编码的话,这些就是我一直在思考的问题-希望有一些现有的功能(是的,我很懒!)当然,如果在前6个月内(如果在一年的前6个月内,则为当前或之前),我还将不得不担心增加一年。