source

팬더는 Excel(.xlsx) 파일을 열 수 없습니다.

ittop 2023. 5. 7. 11:50
반응형

팬더는 Excel(.xlsx) 파일을 열 수 없습니다.

아래의 내 코드를 참조하십시오.

import pandas
df = pandas.read_excel('cat.xlsx')

실행 후 다음 오류가 나타납니다.

Traceback (most recent call last):
  File "d:\OneDrive\桌面\practice.py", line 4, in <module>
    df = pandas.read_excel('cat.xlsx')
  File "D:\python\lib\site-packages\pandas\util\_decorators.py", line 296, in wrapper
    return func(*args, **kwargs)
  File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 304, in read_excel
    io = ExcelFile(io, engine=engine)
  File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 867, in __init__
    self._reader = self._engines[engine](self._io)
  File "D:\python\lib\site-packages\pandas\io\excel\_xlrd.py", line 22, in __init__
    super().__init__(filepath_or_buffer)
  File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 353, in __init__
    self.book = self.load_workbook(filepath_or_buffer)
  File "D:\python\lib\site-packages\pandas\io\excel\_xlrd.py", line 37, in load_workbook
    return open_workbook(filepath_or_buffer)
  File "D:\python\lib\site-packages\xlrd\__init__.py", line 170, in open_workbook
    raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported

pip 명령을 사용하여 Pandas를 제거하고 다시 설치해 보았습니다.오류가 계속 발생합니다.xlrd 2.0.1과 Pandas 1.1.5를 설치했습니다.

릴리스 전자 메일에 명시된 대로 릴리스 트윗에서 에 링크되고 설명서의 첫 페이지에 나타나는 큰 주황색 경고로 표시되며, repo의 리드미pypi의 릴리스에는 오렌지색이 적지만 여전히 표시됩니다.

xlrd는 xls 파일 이외의 모든 파일에 대한 지원을 명시적으로 제거했습니다.

이는 사용과 관련된 잠재적인 보안 취약성 때문입니다.xlrd읽기용 버전 1.2 이하.xlsx파일

귀사의 경우 해결 방법은 다음과 같습니다.

  • 최소 1.0.1 이상의 최신 버전의 판다를 사용하고 있는지 확인하고, 가급적이면 최신 버전을 사용하십시오.
  • 설치하다openpyxl: https://openpyxl.readthedocs.io/en/stable/
  • 판다 코드를 다음과 같이 변경합니다.
    pandas.read_excel('cat.xlsx', engine='openpyxl')
    

편집: 현재 판다 >= 1.2는 이 문제를 해결합니다.(릴리스 정보)

최신 버전의 xlrd(2.0.1)는 .xls 파일만 지원합니다.

잠재적인 보안 취약성을 감수하고 특정 파일의 잘못된 구문 분석을 감수할 준비가 되어 있는 경우 이전 버전의 xlrd를 설치하여 이 오류를 해결할 수 있습니다.

셸 또는 cmd 프롬프트에서 아래 명령을 사용합니다.

pip install xlrd==1.2.0

가장 좋은 방법은 이 업데이트로 인해 손상된 오래된 코드가 있을 경우 openpyxl을 read_excel()의 기본 판독기로 만드는 것입니다.

환경의 판다 폴더 안에 있는 _base.py로 이동하여 메서드의 기본값을 변경하여 이 작업을 수행할 수 있습니다.다음과 같이 찾을 수 있습니다.

import pandas as pd
print(pd.__file__)

파일을 열고 찾기

def read_excel(...)

엔진의 기본값이 표시됩니다.'openpyxl'로 변경합니다.

원본 팁/답변: https://stackoverflow.com/a/69577391/7151338

저는 그것을 사용하는 것과 같은 문제를 겪었습니다.ExcelFile생성자(복수의 워크시트를 포함하는 파일의 경우) 대신read_excel방법.이 경우 해결책은 다음과 같습니다.

import pandas

xlsx = pandas.ExcelFile('cat.xlsx', engine='openpyxl')

최신 버전의 Panda는 xlsx 파일을 지원합니다.이 오류가 발생했습니다.1.1.4업그레이드한 후1.3.5

pip install --upgrade pandas

나는 더 이상 가지고 있지 않습니다.XLRDError이전 버전에서는 xlsx 파일도 지원합니다.

언급URL : https://stackoverflow.com/questions/65250207/pandas-cannot-open-an-excel-xlsx-file

반응형