python-chardetを使った文字コード推定
使い方
>>> import chardet
>>> s = 'こんにちは'
>>> chardet.detect(s)
{'confidence': 0.9690625, 'encoding': 'utf-8'}
>>> s.decode(chardet.detect(s)['encoding'])
u'\u3053\u3093\u306b\u3061\u306f'
リンク
chardet · PyPI
https://pypi.org/project/chardet/
GitHub – chardet/chardet: Python 2/3 compatible character encoding detector.
https://github.com/chardet/chardet
関連記事
python.exeとpythonw.exe
python.exe
.py拡張子のファイルで使われる(デフォルト)GUIアプリケーションでもコマンドプロンプトが表示される
pythonw.exe
.pyw拡張子のファイルで使われる(デフォルト)コマンドプロンプトは表示されない
.pyでコマンドプロンプトが表示されないように設定
.pyでpythonw.exeを使うように設定するにはコマンドプロンプトを管理者権限...
Pillow (Python Imaging Library)でPNGファイルを扱う時の注意
Pythonのライブラリ「Pillow」を使ってPNGファイルをJPGファイルに変換したい場合、次のようなスクリプトで実行できます。
from PIL import Image
Image.open('example.png').save('example.jpg')
ただし、PNGファイルにAlpha値が含まれていると次のようなエラーになってしまいます。
OSError: c...
Pythonでnkf
Pythonで文字コードが不明な文字列(例えばインターネット上のHTMLは文字コードが間違っている場合があります)はnkfを使うと簡単に取り扱うことができるみたいです。
# emerge -pv app-i18n/nkf
These are the packages that would be merged, in order:
Calculating dependencies... ...
PythonでUnicodeEncodeErrorとなる場合に
Pythonで端末のエンコーディング取得はgetpreferredencodingでできます。
>>> import sys
>>> locale.getpreferredencoding()
'cp932'
「あいうえお」と表示するスクリプト(sample.py)
# -*- coding: UTF-8 -*-
s = u'あいうえお'
print s
コマンドプロンプ...
PythonでUnicodeのオブジェクトとコードポイントの変換
UnicodeオブジェクトをUnicodeコードポイントに変換
>>> ord(u'あ')
12354
UnicodeコードポイントをUnicodeオブジェクトに変換
>>> unichr(12354)
u'\u3042'
>>> print unichr(12354)
あ
8ビット文字列にordを使うとASCIIコードを取得することもできます。
>>> ord('...
PythonのString Formattingを拡張
Python 3で追加されたformatを使うと文字列操作が便利になります。
使い方は次のような感じです。(参考:Pythonの新しい文字列書式操作)
>>> '{0} + {1} = {2}'.format(1, 2, 1+2)
'1 + 2 = 3'
string.Formatterを継承すると、この文字列操作を拡張することができるそうです。
拡張の仕方は以下のような...