[New-bugs-announce] [issue44638] zipfile.ZipFile is closed when zipfile.Path is closed

Christian Steinmeyer report at bugs.python.org
Wed Jul 14 10:48:27 EDT 2021


New submission from Christian Steinmeyer <christian.steinmeyer.1993 at gmail.com>:

When executing the code below with the attached zip file (or any other that has one or more files directly at root level), I get a "ValueError: seek of closed file". It seems, the zipfile handle being part of the `TestClass` instance is being closed, when the `zipfile.Path` is garbage collected, when it is no longer referenced. Since `zipfile.Path` even takes a `zipfile.Zipfile` as an argument, I don't think it is intended? It surprised me at least.


```
import zipfile


class TestClass:
    def __init__(self, path):
        self.zip_file = zipfile.ZipFile(path)

    def iter_dir(self):
        return [each.name for each in zipfile.Path(self.zip_file).iterdir()]

    def read(self, filename):
        with self.zip_file.open(filename) as file:
            print(file.read())

root = "zipfile.zip"
test = TestClass(root)
files = test.iter_dir()
test.read(files[0])
```

----------
components: Library (Lib)
files: zipfile.zip
messages: 397483
nosy: christian.steinmeyer
priority: normal
severity: normal
status: open
title: zipfile.ZipFile is closed when zipfile.Path is closed
type: behavior
versions: Python 3.8
Added file: https://bugs.python.org/file50150/zipfile.zip

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue44638>
_______________________________________


More information about the New-bugs-announce mailing list