此代码在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方法内部进行吗?这是他们的错误,如果不是,我该如何解决?
答案 0 :(得分:0)
解决了此问题
f = tar.extractfile(str(manifest_zip_path).replace("\\", "/"))
tarfile库显然不喜欢反斜杠。