오지's blog

xlsx파일 읽을때 zipfile.BadZipFile: File is not a zip file 에러 발생 본문

개발노트/Python

xlsx파일 읽을때 zipfile.BadZipFile: File is not a zip file 에러 발생

오지구영ojjy90 2022. 8. 11. 15:36
728x90
반응형

 

 

FILE_NAME = os.path.join(set_downloads_folder("ga"), os.listdir(set_downloads_folder("ga"))[0])
for SHEET in LIST_SHEET:
    DF_sheet = pd.read_excel(FILE_NAME, sheet_name=SHEET, engine='openpyxl')

위와 같은 코드에서 read_excel함수를 통해 excel파일을 열려고 했다.

 

분명히 로컬에서 잘돌아가는데 왜 서버에서는 안돌아갈까.. openpyxl을 버전을 바꾸어보라고 하여 지우고 다시 깔아도 그대로였다.

 

 

아래 스택오버플로우에서 보면 

"It's because you created empty .xlsx with no metadata which is an empty file with no cells formatting. use exel or equivalent spreadsheet software to save empty file in that directory"

셀단위의 포맷이아닌 빈 엑셀파일을 열어서 그런거라고 한다..

 

그러나  os.listdir(set_downloads_folder("ga"))[0] 이 코드가 문제였다. 로컬 컴퓨터에서 읽었을때는 파일이 한개만 있어서 첫번째 파일을 선택해도 excel파일이나 서버에 올려서 테스트를 하면 서버에는 여러개의 파일이 있기 때문에 excel파일이 아니였다. csv파일이었다.

저 문제의 코드를 다음과 같이 고쳤더니 잘돌아갔다.

FILE_NAME = glob.glob(os.path.join(set_downloads_folder("ga"), '*.xlsx'))[0]

참고

https://stackoverflow.com/questions/33873423/xlsx-and-xlsm-files-return-badzipfile-file-is-not-a-zip-file

 

xlsx and xlsm files return badzipfile: file is not a zip file

I'm trying to open both an xlsx file and an xlsm file both give me the same error badzipfile: file is not a zip file here is what I'm typing: import openpyxl wb=openpyxl.load_workbook('c:\\use...

stackoverflow.com

 

Comments