如何使用Python ftplib获取FTP文件的修改时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用Python ftplib获取FTP文件的修改时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2066字,纯文字阅读大概需要3分钟。
内容图文
![如何使用Python ftplib获取FTP文件的修改时间](/upload/InfoBanner/zyjiaocheng/712/6f136114818b4050ab63fed6965b0d47.jpg)
我正在尝试使用Python将CSV文件加载到Amazon S3.我需要知道CSV文件的修改时间.我正在使用ftplib将FTP连接到Python(2.7).
解决方法:
MLST或MDTM
虽然您可以使用MLST或MDTM命令通过FTP检索单个文件的时间戳,但ftplib都不支持.
当然,您可以使用FTP.voidcmd自行实现MLST或MDTM.
看到:
> 3. File Modification Time (MDTM)
> 7. Listings for Machine Processing (MLST and MLSD)
MDTM的一个简单示例:
from ftplib import FTP
from dateutil import parser
# ... (connection to FTP)
timestamp = ftp.voidcmd("MDTM /remote/path/file.txt")[4:].strip()
time = parser.parse(timestamp)
print(time)
MLSD
可以返回标准化文件时间戳的ftplib库显式支持的唯一命令是MLSD,通过FTP.mlsd method.虽然它的使用仅在您想要检索更多文件的时间戳时才有意义.
>使用MLSD检索完整的目录列表
>在返回的集合中搜索所需的文件
>检索修改事实
>根据规范解析它,YYYYMMDDHHMMSS [.sss]
有关详细信息,请参阅RFC 3659,特别是:
> 7.5.3. The modify Fact部分
> 2.3. Times部分
from ftplib import FTP
from dateutil import parser
# ... (connection to FTP)
files = ftp.mlsd("/remote/path")
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.
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
使用这样的列表,此代码将执行:
from ftplib import FTP
from dateutil import parser
# ... (connection to FTP)
lines = []
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]
time = parser.parse(time_str)
print(name + ' - ' + str(time))
查找最新文件
另见Python FTP get the most recent file by date.
内容总结
以上是互联网集市为您收集整理的如何使用Python ftplib获取FTP文件的修改时间全部内容,希望文章能够帮你解决如何使用Python ftplib获取FTP文件的修改时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。