質問するログイン新規登録
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

6422閲覧

エラー BadZipFile: Bad CRC-32ko

miroa

総合スコア7

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/01/08 08:47

編集2020/01/08 10:38

0

0

###今行っていること
青空文庫のgithubから得られる全データから、作品データを解凍して別ファイルに保存するプログラムを作成中です。
###わからないこと
ファイルを解凍しようとすると、以下のエラー表示ののちストップします。
途中までは成功しますが、あるpngファイルを解凍しようという段階で毎回このエラーを吐きます.
BadZipFile: Bad CRC-32 for file 'fig50718_01.png'
環境は、python3.6です。
ファイルサイズの問題とのことですが、解決策を教えていただきたいです。
###コード

Python

1import zipfile 2import os 3import re 4import shutil 5class Unzipper: 6 def unzipAll(self): 7 home=os.path.abspath("..\..") 8 card=home+"\aozorabunko-master\cards\" 9 dest=home+"\data\books\" 10 p1=re.compile(r'files$') 11 p2=re.compile(r'[0-9]{6}') 12 p3=re.compile(r'.zip$') 13 for curDir, dirs, files in os.walk(card,topdown=False): 14 if(re.search(p1,curDir)!=None): 15 val=re.search(p2,curDir) 16 if(val!=None): 17 print('===================') 18 19 if(os.path.exists(dest+val.group())==False): 20 os.mkdir(dest+val.group()) 21 for i in files: 22 if(re.search(p3,i)!=None): 23 with zipfile.ZipFile(curDir+"\"+i,'r') as inputFile: 24 inputFile.extractall(dest+val.group()): 25 26uz=Unzipper() 27uz.unzipAll()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

とりあえず例外を吐くファイルをtry文で飛ばすことにしました。
すべてのファイルを解凍できる方法を知りたいです。

投稿2020/01/08 16:13

miroa

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.H.

2020/01/16 06:33

単純にzipファイルが壊れてるのでは? unzip -t [zipファイル] でテストしてみては?
miroa

2020/01/22 04:06

ご回答ありがとうございます! ファイルを特定してunzip-tで壊れているかどうかテストしてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問