【发布时间】:2017-09-20 15:33:57
【问题描述】:
我有一个要求,我必须从 FTP 文件夹中提取最新文件,问题是文件名包含空格并且文件名具有特定模式。 下面是我实现的代码:
import sys
from ftplib import FTP
import os
import socket
import time
import pandas as pd
import numpy as np
from glob import glob
import datetime as dt
from __future__ import with_statement
ftp = FTP('')
ftp.login('','')
ftp.cwd('')
ftp.retrlines('LIST')
filematch='*Elig.xlsx'
downloaded = []
for filename in ftp.nlst(filematch):
fhandle=open(filename, 'wb')
print 'Getting ' + filename
ftp.retrbinary('RETR '+ filename, fhandle.write)
fhandle.close()
downloaded.append(filename)
ftp.quit()
我知道我可以将一个空列表附加到 ftp.dir() 命令,但由于文件名有空格,我无法以正确的方式拆分它并选择我提到的最新类型的文件以上。
任何帮助都会很棒。
【问题讨论】:
-
发布的程序的行为是什么?它是否适合您?它会打印错误消息吗?是否完全在做其他事情?
-
拉取我想要的文件效果很好,我这样做了一次。但接下来,我需要将其自动化并开始根据日期仅选择最新的文件。
-
为了将来参考,给我们一个示例文件名会很整洁。只是为了让我们知道它的实际外观。
-
ABC 文件 1 of 3_XXX_MV2_PElig.xlsx,给你……但我想文件名应该不是那么重要!由于上面的代码已经有了我提到的文件模式。
-
如果您只与一个特定的 FTP 服务器通信,尽管文件名中有空格,但应该可以解析 LIST 输出的时间戳。除非 MDTM 可用(R.Neumann 的回答),否则我看不到其他方法。
标签: python python-2.7 ftplib