diff --git a/CHANGES.md b/CHANGES.md index 607f4f8..1650585 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,7 @@ ## 1.36.1 (2024-xx-xx) +- FIX: Fix `files.extract_file` when there is a file in the root of the zip archive ([#11](https://github.com/sertit/sertit-utils/pull/11)) - FIX: Fix `geometry.nearest_neighbors` when k is bigger than the number of candidates - DOC: Update some examples in documentation diff --git a/sertit/files.py b/sertit/files.py index 1169b0f..14def2d 100644 --- a/sertit/files.py +++ b/sertit/files.py @@ -200,7 +200,9 @@ def extract_file( if file_path.suffix == ".zip": # Manage the case with several directories inside one zipfile arch = zipfile.ZipFile(file_path, "r") - # extr_names contains only directory names + + # zipfile.namelist returns the relative path of the file names in the archive + # if a file is in the root of the archive, there is no "/", so it should not be included extr_names = list({p.split("/")[0] for p in arch.namelist() if "/" in p}) elif file_path.suffix == ".tar" or file_path.suffixes == [".tar", ".gz"]: # Tar files have no subdirectories, so create one