gpt4 book ai didi

python - OSError 在 Linux 上使用 Python zipfile 解压时参数无效

转载 作者:行者123 更新时间:2023-12-01 00:07:48 24 4
gpt4 key购买 nike

我想将 .zip 存档中的文件提取到另一个目录。首先,我创建一个 ZipFile 对象

  zfile = '/home/.../filename.zip'
archive = zipfile.ZipFile(zfile, 'r')

三点...是我只是隐藏了完整路径,而不是真实路径。

然后我将特定成员从存档中提取到另一个目录

  print(archive.namelist()[0])    
# returns sub\\xxx.data where the two back slashes is not a typo!
path = '/home/.../datadir'
archive.extract(member='sub\\xxx.data', path=path)

然后我收到系统错误

  OSError: [Errno 22] Invalid argument: '/home/.../datadir/sub\\xxx.data'

如果我手动将两个反斜杠 \\ 更改为一个正斜杠 /,则会收到不同的错误

  archive.extract(member='sub/xxx.data', path=path)

KeyError: "There is no item named 'sub/xxx.data' in the archive"

因此,Linux 系统无法将带有两个反斜杠的路径识别为有效的 Linux 路径,并且无法手动更改该路径,因为这样 .zip 存档中的文件根本无法识别。

我在使用 7-Zip 时遇到同样的问题

不幸的是,我没有任何关于创建 .zip 文件的方法的信息或控制。

最佳答案

Linux 仅识别 '/' 作为路径分隔符,但您可以设置 os.altsep = '\\' 应该可以工作。

关于python - OSError 在 Linux 上使用 Python zipfile 解压时参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59832717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com