如何从python设置文件的上次修改时间?
我有一个python脚本,它使用FTP下载文件 我当前的下载代码与ftp lib文档中的示例类似:如何从python设置文件的上次修改时间?,python,unix,last-modified,Python,Unix,Last Modified,我有一个python脚本,它使用FTP下载文件 我当前的下载代码与ftp lib文档中的示例类似: ftp.retrbinary('RETR README', open('README', 'wb').write) 现在我有一个要求,通过FTP下载的文件需要与FTP服务器上的文件具有相同的上次修改时间。假设我可以从ftp.retrlines('list')解析出时间,我如何在下载的文件上设置修改的时间 如果有必要的话,我使用的是基于unix的操作系统。有两种方法可以做到这一点。一个是 如果要在
ftp.retrbinary('RETR README', open('README', 'wb').write)
现在我有一个要求,通过FTP下载的文件需要与FTP服务器上的文件具有相同的上次修改时间。假设我可以从ftp.retrlines('list')
解析出时间,我如何在下载的文件上设置修改的时间
如果有必要的话,我使用的是基于unix的操作系统。有两种方法可以做到这一点。一个是 如果要在没有时间戳的文件上设置时间戳,则需要 参考数据 但是,如果使用
shutil.copy()
复制文件,则有一个
参考文件。然后,如果需要权限位,上次访问时间,
上次修改时间,以及标记也已复制,可以使用
shutil.copystat()
紧接在shutil.copy()之后
还有一个是shutil.copy2
,它可以同时完成这两个任务。使用:
更详细的示例:要编辑上次修改的文件字段,请使用:
os.utime(<file path>, (<access date epoch>, <modification date epoch>))
这个答案可以通过一个例子和对当时形式的讨论加以改进;特别是一个时代;IE@jossef的回答。谢谢你的回答;它包含示例,非常详细,非常有用。
os.utime(<file path>, (<access date epoch>, <modification date epoch>))
os.utime(r'C:\my\file\path.pdf', (1602179630, 1602179630))