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 库显然不喜欢反斜杠。
此代码在 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 库显然不喜欢反斜杠。