在Python中使用7zip压缩时如何不包含整个路径?

问题描述 投票:0回答:2

我有一个 C:/a/b/c/d,我只想压缩文件“d”。当我使用 py7zr 库在 Python 中执行此操作时

archive = py7zr.SevenZipFile('C:/a/b/c/d.7z', 'w')
archive.writeall('C:/a/b/c/d')
archive.close()

它可以工作,但是当我提取 zip 时,我最终得到了整个 a/b/c 路径,而不是我只想压缩当前文件。有什么想法吗?

python file scripting 7zip data-extraction
2个回答
5
投票

你可以这样做

archive = py7zr.SevenZipFile('C:/a/b/c/d.7z', 'w')
archive.writeall('C:/a/b/c/d', 'd')
archive.close()

然后文件'a/b/c/d/a.txt'将被存档为'd/a.txt'而不是'a/b/c/d/a.txt'


0
投票

问题的标题可能会吸引人们寻找一种将文件直接写入存档根目录的方法。

如果这是您正在寻找的,您可以使用

arcname='.'

z.writeall('C:/a/b/c/d', arcname='.')
© www.soinside.com 2019 - 2024. All rights reserved.