我正在嘗試使用Python將CSV文件加載到Amazon S3.我需要知道CSV文件的修改時間.我正在使用ftplib將FTP連接到Python(2.7).
解決方法:
MLST或MDTM
雖然您可以使用MLST或MDTM命令通過FTP檢索單個文件的時間戳,但ftplib都不支持.
python下載ftp文件、當然,您可以使用FTP.voidcmd自行實現MLST或MDTM.
看到:
MDTM的一個簡單示例:
from ftplib import FTP
from dateutil import parser
python上傳ftp、# ... (connection to FTP)
timestamp = ftp.voidcmd("MDTM /remote/path/file.txt")[4:].strip()
time = parser.parse(timestamp)
print(time)
MLSD
python ftp?可以返回標準化文件時間戳的ftplib庫顯式支持的唯一命令是MLSD,通過FTP.mlsd method.雖然它的使用僅在您想要檢索更多文件的時間戳時才有意義.
>使用MLSD檢索完整的目錄列表
>在返回的集合中搜索所需的文件
>檢索修改事實
>根據規范解析它,YYYYMMDDHHMMSS [.sss]
python復制文件、有關詳細信息,請參閱RFC 3659,特別是:
from ftplib import FTP
from dateutil import parser
# ... (connection to FTP)
files = ftp.mlsd("/remote/path")
python ftplib。for file in files:
name = file[0]
timestamp = file[1]['modify']
time = parser.parse(timestamp)
print(name + ' - ' + str(time))
查看文件修改時間,請注意,MLST,MLSD和MDTM返回的時間均為UTC(除非服務器已損壞).因此,您可能需要根據當地時區更正它們.
再次參考RFC 3659 2.3. Times部分:
Time values are always represented in UTC (GMT), and in the Gregorian
calendar regardless of what calendar may have been in use at the date
and time indicated at the location of the server-PI.
java ftp、LIST
如果FTP服務器不支持任何MLST,MLSD和MDTM,您所能做的就是使用過時的LIST命令.這涉及解析它返回的專有列表.
常見的* nix列表如下:
-rw-r--r-- 1 user group 4467 Mar 27 2018 file1.zip
-rw-r--r-- 1 user group 124529 Jun 18 15:31 file2.zip
python上傳文件到ftp服務器、使用這樣的列表,此代碼將執行:
from ftplib import FTP
from dateutil import parser
# ... (connection to FTP)
lines = []
python ftp服務器?ftp.dir("/remote/path", lines.append)
for line in lines:
tokens = line.split(maxsplit = 9)
name = tokens[8]
time_str = tokens[5] + " " + tokens[6] + " " + tokens[7]
python根據日期下載文件?time = parser.parse(time_str)
print(name + ' - ' + str(time))
查找最新文件
標簽:python,datetime,python-2-7,ftp,ftplib
來源: https://codeday.me/bug/20190923/1814067.html
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态