【发布时间】:2015-02-01 02:39:08
【问题描述】:
我的脚本的工作目录如下所示:
my_script.py
random/
|_ system/
|_ folder/
| |_ fileA
|_ fileB
|_ fileC
我想压缩system 及其所有子目录和文件,这样最终结果应该如下所示:
output.zip
|_system/
|_ folder/
| |_ fileA
|_ fileB
|_ fileC
我的解决方案(如下)的问题在于它在输出 zip 中包含目录 random。换句话说,生成的 zip 的树从 my_script.py 的位置开始。
target = 'random/system'
zip_file = zipfile.ZipFile('output.zip', mode='w')
for root, dirs, files in os.walk(target):
zip_file.write(root)
for file in files:
zip_file.write(root + '/' + file)
zip_file.close()
这是我的代码的(有缺陷的)输出:
output.zip
|_random/
|_system/
|_ folder/
| |_ fileA
|_ fileB
|_ fileC
在不移动任何目录/文件的情况下,如何获得所需的输出?如何排除脚本和目标目录之间的目录?
【问题讨论】: