python:更新(源比目标更新或目标缺失)复制文件
python: update (source newer than destination or destination missing) copy files
python中是否有现成的工具来更新副本文件? “更新副本”意味着只有当源文件比目标文件新或目标文件丢失时才应该制作副本,即相当于 Linux cp -u
命令。
我知道我可以通过检查每个目标文件是否存在以及检查源文件和目标文件的时间戳并比较它们来自己编写代码,但我不想“发明自行车”(即发明很久以前已经发明的东西)如果已经存在这样的工具。
非常感谢您的帮助!
distutils
模块可以做到这一点。
例如,要更新目录 b
中已在目录 a
中更改的所有文件:
from distutils.dir_util import copy_tree
copy_tree("a", "b", update=1)
不是很有用,这将 return 列出 b
中所有也在 a
中的文件,无论它们是否更新(即,如果文件 x
在两个目录中,即使不需要更新也会在列表中)。
您还可以使用:
from distutils.file_util import copy_file
copy_file('src', 'dst', update=1)
这将至少 return 一个有用的元组:
('dst', 1)
和 1
表示文件已更新,如果没有,则为 0
。 (也就是说,该值是真实的,但不一定是 bool
)。
python中是否有现成的工具来更新副本文件? “更新副本”意味着只有当源文件比目标文件新或目标文件丢失时才应该制作副本,即相当于 Linux cp -u
命令。
我知道我可以通过检查每个目标文件是否存在以及检查源文件和目标文件的时间戳并比较它们来自己编写代码,但我不想“发明自行车”(即发明很久以前已经发明的东西)如果已经存在这样的工具。
非常感谢您的帮助!
distutils
模块可以做到这一点。
例如,要更新目录 b
中已在目录 a
中更改的所有文件:
from distutils.dir_util import copy_tree
copy_tree("a", "b", update=1)
不是很有用,这将 return 列出 b
中所有也在 a
中的文件,无论它们是否更新(即,如果文件 x
在两个目录中,即使不需要更新也会在列表中)。
您还可以使用:
from distutils.file_util import copy_file
copy_file('src', 'dst', update=1)
这将至少 return 一个有用的元组:
('dst', 1)
和 1
表示文件已更新,如果没有,则为 0
。 (也就是说,该值是真实的,但不一定是 bool
)。