Python 中的存档提取仅提取一个特定文件的一部分

Archive extraction in Python extracts only part of one particular file

提问人:Adam 提问时间:11/2/2023 最后编辑:Adam 更新时间:11/3/2023 访问量:70

问:

我正在开发一个 Python 脚本,在该脚本中我必须提取某个存档,然后更改我提取的特定文件的内容。 到目前为止,我尝试过的提取方法(如下所示)都导致部分提取一个特定文件,而所有其他文件都已完全提取。

有关部分提取的文件的一些信息: 一个大小为 18.8 kb(最初)的纯文本文件,由我的 Python 脚本部分提取为大小为 6.6 kb 的文件。我已经使用 linux 的内置提取手动提取了文件,并且文本文件已成功提取 - 所以我排除了文件损坏

我尝试了几种提取方法:

下面的代码片段中的“file”表示 zip 文件的名称。在尝试每个 以下方法,我确保它们都获得了正确的zip文件

shutil.unpack_archive(file, format="zip", extract_dir=extract_dir)
with zipfile.ZipFile(file,'r') as zf:
    zf.extractall(extract_dir)
os.system(unzip file -d extract_dir)

上述方法均无效。

提前感谢您的帮助!

python zip 提取

评论

0赞 Mark Adler 11/3/2023
文件的名称是什么?
0赞 Adam 11/3/2023
ZIP文件的名称是Research.zip,上面代码片段中的“文件”只是作为占位符存在。文本文件的名称为 Data.txt。你认为它与文件名有关吗?
0赞 Mark Adler 11/3/2023
例如,如果它是研究.gz,那么是的。
0赞 Mark Adler 11/3/2023
“linux 的内置提取”是什么意思?这是在您尝试这些其他提取方法的同一台机器上吗?你能提供指向 .zip 文件的链接吗?
0赞 Adam 11/3/2023
当我在 Linux 中右键单击 .zip 文件时,菜单中的选项之一是“在此处提取”。当我使用它时,.zip 可以完美地提取,包括“data.txt”文件。这确实是同一台机器。我无法提供指向 .zip 文件的链接,因为它包含敏感信息。@MarkAdler

答: 暂无答案