在Python的Zipfile
模块中,Zipfile.write
方法可以将文件添加到zip文件中,并且可以通过arcname
参数指定存储在zip文件中的文件名。
要避免在Zipfile.write
中进行日期更改,可以使用shutil
模块中的copy2
方法来复制文件,并将复制后的文件添加到zip文件中。copy2
方法会保留源文件的元数据,包括修改日期。
下面是一个示例代码:
import zipfile
import shutil
def add_file_to_zip(zipfile_path, file_path, arcname):
# 复制文件,保留元数据
shutil.copy2(file_path, arcname)
# 将复制后的文件添加到zip文件中
with zipfile.ZipFile(zipfile_path, 'a') as zipf:
zipf.write(arcname)
# 示例用法
zipfile_path = 'example.zip'
file_path = 'example.txt'
arcname = 'example/example.txt'
add_file_to_zip(zipfile_path, file_path, arcname)
在上面的示例中,add_file_to_zip
函数将指定路径的文件复制到指定的zip文件中,并保留原始文件的修改日期。然后,使用Zipfile.write
方法将复制后的文件添加到zip文件中。
请注意,上述示例中的arcname
参数是添加到zip文件中的文件名,它可以是带路径的文件名,以在zip文件中创建文件的目录结构。
上一篇:避免在子类中进行类型转换