【发布时间】:2017-01-10 11:25:19
【问题描述】:
我正在尝试以下代码。
from zipfile import ZipFile
from openpyxl import load_workbook
from io import BytesIO
zip_path = r"path/to/zipfile.zip"
with ZipFile(zip_path) as myzip:
with myzip.open(myzip.namelist()[0]) as myfile:
wb = load_workbook(filename=BytesIO(myfile.read()))
data_sheet = wb.worksheets[1]
for row in data_sheet.iter_rows(min_row=3, min_col=3):
print(row[0].value)
它显示
ValueError: stat: path too long for Windows
这可能吗?
我正在尝试来自 Using openpyxl to read file from memory 的逻辑
【问题讨论】:
-
您的代码使用 xlrd 而不是 openpyxl。
-
我把事情搞混了。让我重试。
-
我已经纠正了这个错误。还有可能吗?
-
你试过这个代码吗?
xlrd会给出您显示的错误,因为它会尝试使用您作为文件名传递的BytesIO(使用file_contents而不是 xlrd),但粗略查看代码似乎表明 openpyxl 将检测到差异。 -
file_contents 有效。谢谢。