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
这可以用了!
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
也许会有人想出更好的办法?