Repository navigation
Explicit directories for zipfiles #49083
Description
Activity
We have an issue with the Python cheeseshop which is probably an issue
with Python itself as well.When we create a zip file with standard linux tools ('zip os-zipped.zip
*'), uploading it works fine. But if we use the zipfile module from
Python and try to upload the result to the cheeseshop, we get this error
message:" Error unpacking zipfile:[Errno 2] No such file or directory:
u'/data/packagedocs/Pympler/_sources/index.txt'"Turns out that the Python-zipped version does not include explicit
directories. The OS-zipped version contains "directory/,
directory/asizeof.txt", the Python-zipped file only
"directory/asizeof.txt". Digging deeper, Python has no way to explicitly
add directories to a zip file.It would be useful to have an option which allows the explicit creation
of directories inside of zip files. This would help when working with
applications which do not create directories if they are not explicitly
specified.- addedstdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytype-featureA feature request or enhancementA feature request or enhancement
on Jan 4, 2009 it looks like this is fixed in 2.6.2.
I'm attaching a zipfile which cannot be extracted in 2.6.1
Running
python -c 'import zipfile; zipfile.ZipFile("test.zip").extractall()'
in 2.6.2 however works.
but you should not do that anyway because of bpo-6972Actually now creating directories in zipfile is possible with ZipFile.writestr(special_zip_info, b''). However a special method (like ZipFile.mkdir(name)) can be useful.
I'm looking into adding ZipFile.mkdir
I've submitted the above patch. I created the ZipFile.mkdir function, created the necessary tests and wrote the documentation.
I think it is ready for review.
Metadata
Metadata
Assignees
Labels
Projects
- StatusShow more project fieldsDone
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields: