Pythonで文字コードが不明な文字列(例えばインターネット上のHTMLは文字コードが間違っている場合があります)はnkf
を使うと簡単に取り扱うことができるみたいです。
# emerge -pv app-i18n/nkf
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] app-i18n/nkf-2.0.7 USE="python -perl"
USEフラグにpython
を付けているとPythonからnkf
が使えます。
>>> import nkf
>>> nkf.nkf('-w', 'こんにちは').decode('utf-8')
u'\u3053\u3093\u306b\u3061\u306f'
手軽なので重宝しそうです。
関連記事
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を継承すると、この文字列操作を拡張することができるそうです。
拡張の仕方は以下のような...
Unsafe load call disabled by Gentoo
Gentoo Linux上でとあるPythonスクリプトを実行したところ
Error: Unsafe load() call disabled by Gentoo. See bug #659348
のようなエラーで実行できなくなってしまいました。
以前は問題なく動いていたスクリプトです。ということで少し調べてみたところ、下の件が関係しているような感じです。
659...
コマンドラインを使った全角⇔半角の変換方法
nkfやsedを使ってコマンドラインから全角⇔半角の変換をする方法についてのまとめ。
全角⇒半角の変換
nkfを使う場合
全角から半角へはnkfの-Zオプションで変換できます。
全角英数字を半角英数字に変換
$ echo 'あいうえお 123456 abcdef' | nkf -Zあいうえお 123456 abcdef
全角英数字と全角スペースを半角に変換
...
sedの基本的な使い方
sedはstream editorの略で入力テキストをフィルタリング・テキスト変換するツールです。いろいろ複雑なこともできますが、ここではsedを使った簡単な文字列置換を紹介してみようと思います。
基本的な使い方
基本的な使い方は次のような感じです。
$ echo "input" | sed "s/pattern/replacement/"
"input"で入力した文字列...