У меня есть zip-файл, созданный на машине Windows
с использованием этого инструмента System.IO.Compression.ZipFile
(этот zip-архив содержит много файлов и папок). У меня есть код Python, который работает на машине Linux
(точнее, raspberry pi), который должен распаковать архив и создать все необходимые папки и файлы. Я использую библиотеку Python 3.5.0
и zipfile
, это пример кода:
import zipfile
zip = zipfile.ZipFile("MyArchive.zip","r")
zip.extractall()
zip.close()
Теперь, когда я запускаю этот код вместо того, чтобы получить красивое разархивированное дерево каталогов, я получаю все файлы в корневом каталоге со странными именами, такими как Folder1\Folder2\MyFile.txt
.
Я предполагаю, что поскольку zip-архив был создан в Windows, а разделитель каталогов в Windows - \
, тогда как в Linux это /
, библиотека python zipfile
обрабатывает \
как часть имени файла, а не каталога. разделитель. Также обратите внимание, что когда я извлекаю этот архив вручную (не через код Python), все папки создаются, как и ожидалось, поэтому, похоже, это определенно проблема библиотеки zipfile
. Еще одно замечание: для zip-архивов, созданных с помощью другого инструмента (не System.IO.Compression.ZipFile
), он работает нормально, используя тот же код Python.
Любое понимание того, что происходит и как это исправить?