如果修改日期少于24小时,我正在尝试编写一个脚本来从SFTP服务器检索文件。 这是我到目前为止的尝试:
cnopts = sftp.CnOpts()
cnopts.hostkeys = None
s = sftp.Connection(host=host, username=username, password=password, port=port, cnopts=cnopts)
s.cwd(r"/Outbox")
for attr in s.listdir_attr("ENTOUT_709_Payers_20170802024203.csv"):
print(attr)
以下是结果......
?rw-rw-rw- 1 0 0 8339 02 Aug 02:42 ENTOUT_709_Payers_20170802024203.csv
如何以"02 Aug 02:42"
%Y%M%d?
答案 0 :(得分:1)
我可以替代它:
def unix2human(unixtime, fmt = "%Y-%m-%d"):
try:
return datetime.utcfromtimestamp(int(unixtime)).strftime(fmt)
except Exception as e:
log.warning("Failed to convert unixtime string '{}' :: {}".format(unixtime, e))
return None
因此您的代码将如下所示:
for attr in s.listdir_attr("ENTOUT_709_Payers_20170802024203.csv"):
print(unix2human(attr.st_mtime))
其中 st_mtime 是内置的pysftp方法
答案 1 :(得分:0)
您可以解析从ftp目录列表中返回的日期字符串,如下所示:
import datetime
input_date = "02 Aug 02:42"
parsed_date = datetime.datetime.strptime(input_date,"%d %b %H:%M").replace(year=2017)
print(f"{parsed_date:%Y%m%d}")
输出为20170802
。