使用 Python 将文件列表添加到 zip 文件中

2024-03-30

我想编写一个脚本将所有“.py”文件添加到 zip 文件中。

这是我所拥有的:

import zipfile
import os

working_folder = 'C:\\Python27\\'

files = os.listdir(working_folder)

files_py = []

for f in files:
    if f[-2:] == 'py':
        fff = working_folder + f
        files_py.append(fff)

ZipFile = zipfile.ZipFile("zip testing.zip", "w" )

for a in files_py:
    ZipFile.write(a, zipfile.ZIP_DEFLATED)

但是它给出了一个错误:

Traceback (most recent call last):
  File "C:\Python27\working.py", line 19, in <module>
    ZipFile.write(str(a), zipfile.ZIP_DEFLATED)
  File "C:\Python27\lib\zipfile.py", line 1121, in write
    arcname = os.path.normpath(os.path.splitdrive(arcname)[1])
  File "C:\Python27\lib\ntpath.py", line 125, in splitdrive
    if p[1:2] == ':':
TypeError: 'int' object has no attribute '__getitem__'

所以看来给出的文件名不正确。


您需要将压缩类型作为关键字参数传递:

ZipFile.write(a, compress_type=zipfile.ZIP_DEFLATED)

如果没有关键字参数,您将给出ZipFile.write()一个整数arcname相反,这会导致您看到的错误arcname正在常态化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 将文件列表添加到 zip 文件中 的相关文章

随机推荐