我在 python 中有一个非常简单的 zipfile 实现,它成功地从某些 zip 文件中提取,但在其他文件上始终失败。当它成功时(显然),代码将执行并从 zip 中提取文件。当失败时,代码也会执行而不会出现任何错误,但文件不会从 zip 中提取。
关于如何调查为什么代码执行没有错误,但在这些情况下实际上没有提取文件,有什么想法吗?我尝试使用 is_zipfile 和 compress_type 测试该文件,无论我是在最终有效的 zip 文件上操作还是在始终失败的 zip 文件上操作,这些东西看起来都是一样的。所以我不确定如何查明失败的文件中的“差异”。
import zipfile
def unzip(ziph):
ziph.extractall('C:\\')
if __name__ == '__main__':
ziph = zipfile.ZipFile('foo.zip', 'r')
unzip(ziph)
ziph.close()
我要补充的最后一件事是,extract 和 extractall 都可以在有效的文件上工作,并且都无法在失败的 zip 文件上提取(但执行时没有错误)。 Python 2.76 ...不知道还包括什么。
请尝试=>
def unzip(ziph):
ziph.extractall(path = 'C:\\')
此外,如果您在管理模式下运行该进程,请检查权限。 您也可以通过检查在您的该路径上写入一个简单的文本文件来尝试。