あおしまの日記

あおしまさんの日記らしいです。個人的に興味がある事を時々書きます。スマートウォッチPebble日本語パックを作成、公開しています。

Yukiwikiのページ群の名前をunquoteする(python3)

このダイアリーは、もともとYukiwikiを使っていた時の情報を、記法が似通った場所に移行させたいという事で開設したものでした。その時もごく一部の公開すべきネタは移行しておりました。

ただそれも限界がありますし、Scrapboxは増井さんからお誘いを受けてぼちぼち使っていまして、そろそろYukiwiki時代の全情報を移行しようかなあという気になりました。

Yukiwikiの個々のデータはテキストファイルになっていて、quoteされた文字列がファイル名になっているので、どのファイルが何なのかがわかりにくいのが難点です。そこで、今後の作業に先立ち各ページのファイル名を可視化するため、ファイル名をunquoteすることにしました。

ファイル名を2文字ずつ行列にし、%で挟んで電車つなぎにした上で、urllib.parseに通してunuoteした上で、ファイル名の変更コピーをする作戦です。
pythonの手習い目的です。もっとエレガントな方法があるはずですが、今手出しできる材料ではこれが限界でした。
#エラーと戦っていまだによくわからないけれども。

注意:予め直下に出力ディレクトリ./res/を用意しとかないと死にます。

 import os
 import sys
 import glob
 import re
 import urllib.parse
 import shutil
 
 path = "./cgi-bin/wal/WalWiki/wiki"
 files = glob.glob(path + '/*.txt')
 
 outpath = "./res/"
 
 for f in files:
 	val = re.findall(r"[A-Fa-f0-9][A-Fa-f0-9]",f)
 	ch = '%'+'%'.join(val)
 	result = urllib.parse.unquote_plus(ch, encoding='euc_jp', errors='ignore')
 #	print (result)
 
 # filenameのエスケープ
 #	result2 = result.replace('/','_')
 	result2 = re.sub(r'[/:]+', '_', result)
 	
 	newname = outpath + result2 + '.txt'
 #	print (newname)
 	shutil.copy(f, newname)