【发布时间】:2021-09-23 04:29:45
【问题描述】:
我想打开一个压缩文件A001-C-002.zip。它引发Attempt to use ZIP archive that was already closed 错误。
from pathlib import Path
import pandas as pd
import zipfile
import os
import sys
path = "./CODEX/input/"
for filename in os.listdir(os.getcwd()):
with open(os.path.join(os.getcwd(), filename), 'r') as f:
# Antibody information
ab = pd.read_excel("HUBMAP B004 codex antibodies metadata.xlsx")
print(f"Antibody metadata column names:\n {ab.columns.values}")
# Patient A001
with zipfile.ZipFile("A001-C-002.zip") as z:
for filename in z.namelist():
if not os.path.isdir(filename):
for line in z.open(filename):
print(line)
z.close()
追溯:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/tmp/ipykernel_4872/558093962.py in <module>
9 for filename in z.namelist():
10 if not os.path.isdir(filename):
---> 11 for line in z.open(filename):
12 print(line)
13 z.close()
/usr/lib/python3.8/zipfile.py in open(self, name, mode, pwd, force_zip64)
1499 raise ValueError("pwd is only supported for reading files")
1500 if not self.fp:
-> 1501 raise ValueError(
1502 "Attempt to use ZIP archive that was already closed")
1503
ValueError: Attempt to use ZIP archive that was already closed
【问题讨论】:
-
你在打印一个文件后调用
z.close(),然后它就关闭了:) -
您在使用
with时无需致电close()。当你离开区块时它会自动关闭它。