使用python创建或修改日期的Hdfs文件或文件夹

时间:2018-04-19 02:48:21

标签: python-2.7 hdfs

要查找在hdfs中创建文件或文件夹的天数,我使用了以下python代码。

import datetime
from datetime import datetime

def get_days(directory, file)

    current_datetime = datetime.now()
    command = "hadoop fs -ls " + directory + file + " | tr -s ' ' | cut -d' ' -f6-7 | grep '^[0-9]' "
    status, output = shell_command(command)
        if status == 0:
            file_date = datetime.strptime(output, '%Y-%m-%d %H:%M')
            date_period = current_datetime - file_date
    return date_period.days

它抛出了以下错误

File "/usr/lib64/python2.7/_strptime.py", line 325, in _strptime (data_string, format)) 
ValueError: time data 'log4j:WARN No appenders could be found for logger (org.apache.hadoop.security.UserGroupInformation).\nlog4j:WARN Please initialize the log4j system properly.\nlog4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.\n2018-04-11 14:08' does not match format '%Y-%m-%d %H:%M'

我能想到的唯一原因是输出是推断类型Unicode的变量。有没有其他方法可以在python中找到Hdfs文件的修改日期或年龄?请指教。对上述代码的任何更改也是受欢迎的。提前致谢。

1 个答案:

答案 0 :(得分:0)

以下代码对我有用:

'03.07.00E|03.07.01E|03.07.02E|03.07.03E|03.07.04E|03.07.05E|16.2.1|16.2.2|03.08.00E|16.3.1|16.3.2|16.3.3|16.3.1a|16.4.1|16.4.2|03.17.01E|03.07.11E'