2008/05/20
ドキュメントアクション
文字コード判定して一括でuft-8に変換するPythonスクリプト
utf-8でのHTML作成を依頼したらEUC-JPで送られてきたので自分で変換してしまう。findとnkfを組み合わせれば良いんだろうけど、とりあえず手元にWindowsしか無かったんでPythonで作ってしまった。
カレントディレクトリ以下のテキストと思われるファイルを全てutf-8に変換する。文字コード判定というかトライ&エラー方式。 バイナリファイルは変換に失敗したらskipするという手法。画像ファイルなんかはまあ大丈夫だろうけど、誤変換しない保証はない。・・・怖。
- import os, sys
def guess_charset(data):
f = lambda d, enc: d.decode(enc) and enc
try: return f(data, 'utf-8')
except: pass
try: return f(data, 'shift-jis')
except: pass
try: return f(data, 'euc-jp')
except: pass
try: return f(data, 'iso2022-jp')
except: pass
return None
def conv(data):
charset = guess_charset(data)
u = data.decode(charset)
return u.encode('utf-8')
for dirpath, dirs, files in os.walk(os.getcwd()):
for fn in files:
path = os.path.join(dirpath, fn)
fobj = file(path, 'rU')
data = fobj.read()
fobj.close()
try:
data = conv(data)
except:
print path, "-> skip"
continue
fobj = file(path, 'wU')
fobj.write(data)
fobj.close()
print path, "-> converted"
- カテゴリ
-
python
- 固定リンク
- ¦
- コメント (2)
- ¦
- トラックバック (1)
- トラックバック用URL:
- http://www.freia.jp/taka/blog/571/tbping
[Python][Mercurial]巡回
GoogleのソースレビューシステムMondrianのオープンソース版「Rietveld」 CherryPy 3.1.0rc1 PyFileMaker 2.5 pyRuby-Python-Bridge 1.5 bzr 1.5 文字コード判定して一括でuft-8に変換するPythonスクリプト [python] sitecustomize.pyを設定しない運動その1(Pythonで日本語
- エラー
- ポートレットをレンダリングしているときにエラーがありました。
| « | 2010 年 September | » | ||||
|---|---|---|---|---|---|---|
| Mo | Tu | We | Th | Fr | Sa | Su |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
- このBlogについて
- Zope, Python, FreeBSD, その他色々について。つまり日記か。
- 最近のエントリ
- cmscomさん主催の開発合宿に参加してきました taka 2010年08月29日
- BPStudy#36 に参加しました Jiemamyとbeproud-bot君の紹介 taka 2010年08月27日
- Zope/Plone開発勉強会#14 でxdvについてまとめました taka 2010年08月23日
- Pythonで入れ子Zip内のファイルを透過的に開く方法 - zip_openを使う taka 2010年07月19日
- Windowsでpyreadline-1.6を使うとCtrl+H押下で文字削除出来ない問題のパッチ taka 2010年07月18日
- 最近のコメント
- Re:Zope2 ドキュメントを Sphinx でビルドする手順 xiangxiang 2010年09月03日
- pyreadline-1.6対応 しみずかわ 2010年07月18日
- pyreadline-1.6対応 しみずかわ 2010年07月18日
- Re:日本語キーボードから英語キーボードへ TAZO 2010年07月15日
- Re:COREBlog2をPlone3で動かすための修正: portletのカレンダー akiko 2010年06月30日
- 最近のトラックバック
- [python] エキスパートPythonプログラミング 彷徨えるフジワラ 2010年05月30日
- ファミリーコンサート 2009 終了 takalog 2009年11月10日
- Tools@System @note (PukiWiki/TrackBack 0.4) 2009年07月12日
- Windowsのコマンドプロンプトをフリーソフトで便利にする ナレッジエース 2009年05月31日
- plone研究会(2009-05) takalog 2009年05月22日
- カテゴリ
- Agile(XP) (0)
- Event (12)
- Pattern (0)
- その他 (10)
- Zope (11)
- Memo (0)
- 食 (3)
- python (19)
- Programming (1)
- Game (0)
- OO (0)
- Unix (0)
- WZ (0)
- work (0)
- Plone (11)
- Windows (1)
- IT-PC (4)
- 自転車 (0)
- TurboGears (0)
- ダーツ (0)
- JavaScript (0)
- 旅行 (1)
- Web (4)
- セキュリティー (1)
- Django (0)
- LDAP (0)
- データベース (0)
- vi/vim/gvim (0)
- C/C++ (0)
- ボドゲ (0)
- RoR (2)
- pyspa (1)
- スタトレ (0)
うぁ、.orig とか残さなくていいの?
まぁ、オリジナルのzip とかあるんでしょうけど。
> うぁ、.orig とか残さなくていいの?
まあそれはフルコピーがある前提で。。