Окна! Строка пути \ преобразуется в \\\\ - PullRequest
0 голосов
/ 02 мая 2019

Этот код прекрасно работает в 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?Это ошибка от них, и если нет, то как я могу ее решить?

1 Ответ

0 голосов
/ 02 мая 2019

Решил проблему, выполнив это

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

Библиотека tarfile явно не любит обратную косую черту.

...