【发布时间】:2021-07-10 16:14:26
【问题描述】:
我要压缩的文件夹中有一系列文本文件。我压缩文件夹并生成一个 zip 文件。
当我以编程方式调用 zipfile 时出现错误:BadZipFile: File is not a zip file。
我一直在使用这段代码测试压缩目录:
import zipfile
print (zipfile.is_zipfile("~/path/to/zipfile.zip") )
[output]:false
我什至尝试使用此代码以编程方式创建一个新的压缩目录并尝试上面的 zipfile 检查器代码,但也从中得到 False:
import os
import zipfile
def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
ziph.write(os.path.join(root, file))
zipf = zipfile.ZipFile('Zipped_file.zip', 'w', zipfile.ZIP_DEFLATED)
zipdir('~/Desktop/cleaned_files_2', zipf)
zipf.close()
没有生成有效的压缩目录,我做错了什么?
【问题讨论】:
-
Python 代码看起来不错。您能否在命令行 zip 程序中测试您创建的压缩文件。例如
zip -t Zipped_file.zip输出什么? -
@pmqs 当我运行您的线路时,我在终端中收到此错误:
zip error: Invalid command arguments (invalid date entered for -t option - use mmddyyyy or yyyy-mm-dd)。还有什么我可以做的测试吗? -
对不起,我的错字我的意思是
zip -T Zipped_file.zip。也可以试试unzip -t Zipped_file.zip -
@pmqs 上面的 python 代码正在生成一个空的 zip 文件。我回去手动创建了一个 zip 文件。我运行了你的两条线并得到了这个:
zip -T cleaned_files_2.zip test of cleaned_files_2.zip OK和unzip -T cleaned_files_2.zip Updated time stamp for cleaned_files_2.zip.我在第一段代码中将cleaned_files_2.zip 运行到 zipfile 检查器中,仍然得到FALSE。 -
@pmqs 我在原始函数中硬编码了文件路径,并传回了 zipfile 以检查它是否是真正的 zipfile,这次我得到了一个 TRUE。现在正在试验,看看它是否能解决问题。
标签: python-3.x amazon-web-services amazon-s3 zip