Python使用FTP从通配符和日期更改中获取文件

时间:2014-05-13 07:07:08

标签: python ftp

我需要在FTP目录中通过通配符查找文件,并且目录中的文件具有相同的名称部分(为此部分名称指定了掩码),并且需要在以后的修改日期找到该文件。 示例:在目录中有文件:AAA1,AAA2,AAA3,BBB1,BBB2。寻找掩码* AAA和BBB *文件以及AAAx BBBx以后的日期修改。

结果是:

dir_source = ftp.nlst()
masks = ["*.txt", "*.log"]

def listFiles(files, masks):
    findFiles = []
    parrent = re.compile("|".join(map(fnmatch.translate, masks)), re.I).match
    for filename in filter(parrent, files):
        d = {filename: int((ftp.sendcmd('MDTM ' + filename))[4:])}
        print d
    findFiles.append(max(d, key=lambda i: d[i]))
    return findFiles

print listFiles(dir_source, masks)

但它不起作用......如何更改功能?

1 个答案:

答案 0 :(得分:0)

它的工作!

def listFiles(files, masks):
    findFiles = []
    for x in masks:
        parrent = re.compile(fnmatch.translate(x)).match
        d = {filename: ((ftp.sendcmd('MDTM ' + filename))[4:]) for filename in filter(parrent, files)}
        print d
        findFiles.append(max(d, key=lambda i: d[i]))
    return findFiles

也许有人会提出更好的建议?