with文で例外が発生した場合に、処理を飛ばす方法
以下のコードでlocalという変数に格納されたアドレスにある圧縮ファイルを解凍しようとした場合に、もしもlocalという圧縮ファイルが存在せず、FileNotFoundErrorが発生したらlocalに対する処理を飛ばしたいです。
どのように以下のコードを変えれば上の問題は解決するでしょうか...?
コード
# coding: utf-8
import csv
import zipfile
import re
#import io
#import sys
root_dir = '/Users/bigbird/Documents/UROP_data'
#root_dir ='/home/firebird555/note2'
with open('local_process.csv', 'r') as f:
reader = csv.reader(f)
#pointer.csvという新しいcsvファイルを以下で作る。
g = open('pointer.csv', 'a') #閉じるのを忘れずに...!
csvWriter = csv.writer(g)
header = next(reader) # ヘッダーを読み飛ばしたい時
csvWriter.writerow(header)
for row in reader:# local_process.csvのデータを1行づつ取得できる
local = row[2]#localでzipファイルのある場所。...とか言いつつ無い可能性もあるのでチェック(例外処理)が必要。
with zipfile.ZipFile(local, 'r') as zf: #zipファイルを読む。ファイルが見つからない時の例外処理はどうすれば...。
files = [info.filename for info in zf.infolist() if info.filename.endswith('.txt')]
for f in files:
listData = [] #listの初期化
listData.append(row[0])
listData.append(row[1])
bindata = zf.read(f)
#text = bindata.decode(row[3]) #なぜかエラーを吐かれる。
text = bindata.decode('shift_jisx0213')#この後テキストデータを整形した上でTextに保存したい。
#https://qiita.com/makaishi2/items/63b7986f6da93dc55eddを参照
# ヘッダ部分の除去
list = re.split('\-{5,}',text)
text = list[len(list)-1]
# フッタ部分の除去
text = re.split('底本:',text)[0]
# | の除去
text = text.replace('|', '')
# ルビの削除
text = re.sub('《.+?》', '', text)
# 入力注の削除
text = re.sub('[#.+?]', '',text)
# 空行の削除
text = re.sub('\n\n', '\n', text)
text = re.sub('\r', '', text)
#上で加工した書き込むテキストを開く。また、テキストの場所をpointer.csvに記録する。
text_file = root_dir + '/Text/'+ f
listData.append(text_file)
with open(text_file, 'w', encoding="utf-8") as fp:#エラーが発生してしまう場所
fp.write(text)
listData.append('utf-8')
csvWriter.writerow(listData) #1行書き込み
g.close()
エラー
Traceback (most recent call last):
File "ExtractText.py", line 24, in <module>
with zipfile.ZipFile(local, 'r') as zf: #zipファイルを読む
File "/Users/bigbird/.pyenv/versions/3.5.0/lib/python3.5/zipfile.py", line 1006, in __init__
self.fp = io.open(file, filemode)
FileNotFoundError: [Errno 2] No such file or directory: 'http://ryojikobo.webcrow.jp/yamino/onashi.zip'