Python 3 gzip 会关闭 fileobj 吗?

Ath*_*dom 6 python compression gzip zlib python-3.x

gzipPython 3 的文档指出

\n
\n

调用 GzipFile 对象\xe2\x80\x99s close() 方法不会关闭 fileobj,因为您可能希望在压缩数据后附加更多材料

\n
\n

这是否意味着如果我们执行以下操作,gzip 文件处理程序f_in不会关闭

\n
import gzip\nimport shutil\nwith gzip.open(\'/home/joe/file.txt.gz\', \'rb\') as f_in:\n    with open(\'/home/joe/file.txt\', \'wb\') as f_out:\n        shutil.copyfileobj(f_in, f_out)\n
Run Code Online (Sandbox Code Playgroud)\n

如果是这样,如果多次执行此代码,是否会导致泄漏?

\n

Tur*_*son 8

有关 fileobj 未关闭的警告仅在打开文件并通过 fileobj= 参数将其传递给 GzipFile 时适用。当您仅传递文件名时,GzipFile“拥有”文件句柄并且还将关闭它。