【发布时间】:2019-11-12 15:46:50
【问题描述】:
我需要使用 Python 程序从 HTTP 服务器下载文件,同时保留文件创建的原始时间戳。
因此,有两个问题:
- 如何使用 Python 3.7 从 HTTP 服务器获取文件日期?
- 如何为下载的文件设置这个日期?
【问题讨论】:
标签: python python-3.x timestamp
我需要使用 Python 程序从 HTTP 服务器下载文件,同时保留文件创建的原始时间戳。
因此,有两个问题:
【问题讨论】:
标签: python python-3.x timestamp
您可以查看requests 以下载文件并从标题中获取修改日期。
要设置日期,您可以使用 os.utime 和 email.utils.parsedate 从标题中解析日期(请参阅 tzot 的 answer)。
这是一个例子:
import datetime
import os
import time
import requests
import email.utils as eut
url = 'http://www.hamsterdance.org/hamsterdance/index-Dateien/hamster.gif'
r = requests.get(url)
f = open('output', 'wb')
f.write(r.content)
f.close()
last_modified = r.headers['last-modified']
modified = time.mktime(datetime.datetime(*eut.parsedate(last_modified)[:6]).timetuple())
now = time.mktime(datetime.datetime.today().timetuple())
os.utime('output', (now, modified))
【讨论】: