Windows!路径字符串 \ 被转换为 \\\\

Windows! Path String \ gets converted to \\\\

此代码在 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

这 4 个反斜杠从何而来?转换必须在 tarfile 方法内部发生?这是他们的错误吗?如果不是,我该如何解决?

通过这样做解决了问题

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

tarfile 库显然不喜欢反斜杠。