- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 zipfile
将压缩存档中的文件替换为脚本。文件是一个目录,存档在另一个目录中。为此,我将原始存档中的所有内容复制到另一个存档中,不包括我要替换的文件。然后,我将要替换的文件的新版本写入新存档中,关闭它,然后删除旧存档并重命名新存档。应该很容易吧? 错误。
无论出于何种原因,zipfile.write()
方法都会做一件愚蠢的事情,它假设第二个(可选)参数 arcname
与您的文件名,除非您指定它。所以,如果我有以下内容:
fileName = "C:\\Documents\\file"
archive.write(fileName)
我将获得一个存档,其中包含一个名为“文档”的子存档,其中包含该文件。我希望该文件位于存档的根目录中(旁注:“根目录”是我所指内容的正确术语吗?)
我尝试过的事情:
archive.write(fileName,'')
这会在存档中生成一个奇怪的文件,无法打开该文件。archive.write(fileName, archive)
我真的认为这会起作用,但系统真的不喜欢它。 archive.write(fileNameWithoutPath)
这返回了一个错误,因为 Python 无法再找到该文件。那么我如何指定要将文件放在存档的根目录中,同时仍指定其路径以便 Python 可以找到它?
次要且半相关的问题:有没有办法创建新的存档,使其隐藏在 Windows 资源管理器中?
最佳答案
我假设您想要在名为 file 的 zip 文件中包含一个条目,其中包含 C:\Documents\file
ZipFile.write(filename[, arcname[, compress_type]])
Write the file named filename to the archive, giving it the archive name arcname
所以你想要
archive.write(fileName, fileNameWithoutPath)
第一个参数是 zip 中的文件,第二个参数是要在存档中使用的名称,因为它不包含路径分隔符,因此不会创建任何目录。
关于python - 如何在 Python 中将文件写入 Zip 文件的根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19800941/
我是一名优秀的程序员,十分优秀!