视窗!路径字符串\转换为\\\\

时间:2019-05-02 19:29:37

标签: python python-3.x tarfile pathlib

此代码在Ubuntu和MacO上运行良好,但在Windows上却让我头疼。

manifest_zip_path = Path(zip_path).name / Path("manifest")
tar = tarfile.open(zip_path, "r:gz")
f = tar.extractfile(str(manifest_zip_path))

有一个Path对象,我将其转换为字符串。 在调试器中,该字符串显示为“ abcde.tar.gz \ manifest”。 当我将其传递给extractfile函数时,我得到:

KeyError: filename 'abcde.tar.gz\\\\manifest' not found

这四个反斜杠来自哪里?转换必须在tarfile方法内部进行吗?这是他们的错误,如果不是,我该如何解决?

1 个答案:

答案 0 :(得分:0)

解决了此问题

f = tar.extractfile(str(manifest_zip_path).replace("\\", "/"))

tarfile库显然不喜欢反斜杠。