[英]download from path 'file' save to 'other directory' python script issue
[英]Issue about the zip file path in Python Script
我正在使用以下代码片段从特定目录压缩文件,但是,当我在 targetPath 解压缩文件时,它会创建另一个具有以下结构的文件夹路径:
/u01/backup/u01/data/abc/xyz/logs.
可以在脚本中进行哪些更改以使文件夹路径为:
/u01/备份/日志
,当我解压缩它。
#!/usr/bin/env python
import os
import sys
import zipfile
import datetime
def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
ziph.write(os.path.join(root, file))
Time = datetime.datetime.now().strftime('%d-%b-%Y')
sourcePath = '/u01/data/abc/xyz/logs'
targetPath = '/u01/backup/'
fname = targetPath + 'backup-'+ str(Time)+'.zip'
if __name__ == '__main__':
zipf = zipfile.ZipFile(fname, 'w', zipfile.ZIP_DEFLATED)
zipdir(sourcePath, zipf)
zipf.close()
sys.exit()
您可以使用ZipFile.write
的重载函数来指定 zip 中的名称:
请参阅https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.write :
ZipFile.write(filename, arcname =None, compress_type=None, compresslevel=None)
将名为 filename 的文件写入存档,为其指定存档名称arcname (默认情况下,这将与 filename 相同,但没有驱动器号并删除前导路径分隔符)。 [...]
所以
ziph.write(os.path.join(root, file), os.path.join('/u01/backup/logs',file) )
应该将您的文件放入 zip 内更合适的文件夹中 - 如果您想保留原始路径的一部分,您需要将该部分作为要写入的第二个参数提供。
您可以使用 os.path.split / join 来修改文件名 - 请参阅https://docs.python.org/3.8/library/os.path.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.