Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从python设置文件的上次修改时间?_Python_Unix_Last Modified - Fatal编程技术网

如何从python设置文件的上次修改时间?

如何从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的操作系统。有两种方法可以做到这一点。一个是 如果要在

我有一个python脚本,它使用FTP下载文件

我当前的下载代码与ftp lib文档中的示例类似:

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))