如何使用 python(版本 2.5)压缩文件夹的内容?
一旦我在特定文件夹中拥有了所需的所有文件,我希望我的 python 脚本能够压缩文件夹内容。
这可能吗?
我该如何去做呢?
Once I have all the files I require in a particular folder, I would like my python script to zip the folder contents.
Is this possible?
And how could I go about doing it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在 python 2.7 上,您可以使用: shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run [,所有者[,组[,记录器]]]]]]])。
base_name 存档名称减去
的扩展名format 格式
要压缩的存档root_dir 目录
。 例如
On python 2.7 you might use: shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]]).
base_name archive name minus extension
format format of the archive
root_dir directory to compress.
For example
脚本的改编版本是:
示例:
它创建
'C:\zipdir\test.zip'
存档,其中包含'c:\tmp\test'
目录的内容。Adapted version of the script is:
Example:
It creates
'C:\zipdir\test.zip'
archive with the contents of the'c:\tmp\test'
directory.这是一个递归版本
Here is a recursive version
jfs 的解决方案和 Kozyarchuk 的解决方案都适用于 OP 的用例,但是:
,这里有一个解决方案,只需将源文件夹(以及任何深度的任何子文件夹)添加到 zip 存档中。 这是因为您无法将文件夹名称传递给内置方法
ZipFile.write()
- 下面的函数add_folder_to_zip()
提供了将文件夹及其所有内容添加到 zip 存档的简单方法。 下面的代码适用于 Python2 和 Python3。Both jfs's solution and Kozyarchuk's solution could work for the OP's use case, however:
Thus, here is a solution that will simply add a source folder (and any subfolders to any depth) to a zip archive. This is motivated by the fact that you cannot pass a folder name to the built-in method
ZipFile.write()
-- the function below,add_folder_to_zip()
, offers a simple method to add a folder and all of its contents to a zip archive. Below code works for Python2 and Python3.