【问题标题】:Python get recent files FTP [duplicate]Python获取最近的文件FTP [重复]
【发布时间】:2011-08-08 11:44:32
【问题描述】:

我需要在我的 FTP 服务器上获取最新的文件/目录(今天更新),我发现了这个解决方案:

def callback(line):
    try:
        #only use this code if you'll be dealing with that FTP server alone
        #look into dateutil module which parses dates with more flexibility
        when = datetime.strptime(re.search('[A-z]{3}\s+\d{1,2}\s\d{1,2}:\d{2}', line).group(0),     "%b %d %H:%M")
        today = datetime.today()
        if when.day == today.day and when.month == today.month:
            pass
            print "Updated file"
            #####THE CODE HERE#######
    except:
        print "failed to parse"
        return

ftp.retrlines('LIST', callback)

但是:使用此代码,我只能得到多个“解析失败”以及多个“更新文件”打印。但我需要今天更新的文件/目录的文件/目录名称。在“#####THE CODE HERE#######”部分粘贴什么代码来获取目录名?

【问题讨论】:

    标签: python ftplib


    【解决方案1】:

    查看 Python ftplib 的 documentation,看起来 retrlines() 的输出将是文件名是最后一个“列”的行。

    -rw-r--r--   1 ftp-usr  pdmaint     5305 Mar 20 09:48 INDEX
    

    所以一个简单的拆分并获取最后一个字段应该可以工作。但是,它仅在文件/文件夹名称中没有空格字符时才有效。

    name = line.split()[-1]
    print(name) # Should be "INDEX"
    

    如果您想处理名称中包含空格的名称,您可能需要使用更复杂的解析。

    【讨论】:

      【解决方案2】:

      使用nlst() 获取文件名,而不是retrlines()

      我不会假设你的文件名没有空格。

      【讨论】:

        猜你喜欢
        • 2018-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-17
        • 2021-11-22
        • 2021-06-30
        • 1970-01-01
        相关资源
        最近更新 更多