我想用python来获取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"
            #需要添加代码
    except:
        print "failed to parse"
        return

ftp.retrlines('LIST', callback)

我该在"#需要添加代码"处怎么做?


2个回答

一般情况下,我们不能假设文件名没有空格。。。所以需要调用nlst()而不是retrlines()


你可以去看看Python ftplibretrlines()函数输出的最后一列就是文件名,如下:

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

所以在文件名没有空格的条件下,很简单:

name = line.split()[-1]
print(name) # 应该得到 "INDEX"