[Home]
[Setting up Mac OS X]
[Python]:
[ファイルを読む]
日本語を使う
Python 2.4以降では、標準で日本語を扱うことができます。
日本語を扱うPythonのスクリプトの中では、UTF-8の文字コードを使うのが
楽です。
Mac OS Xのターミナルで日本語を扱う場合は、
ここの「4. Terminalの設定を変える」の
指示に従ってください。
以下、ソースコードの簡単な例を示します。
#!/usr/bin/env python # -*- coding: utf-8 -*- import re jtext = u'子猫が隠れんぼをしています' print 'jtext has', len(jtext), 'Japanese characters.' if re.search(u'隠れ', jtext): print 'Found a kitten.'
日本語の入った文字列を標準出力にprintするには、次のようにするのが楽です
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import codecs sys.stdout = codecs.getwriter('utf_8')(sys.stdout) print u'これで日本語も打てます。'
例えば、文字コード euc_jp で書かれたファイルを標準入力から読み込み、 標準出力に文字コード shift_jis で書き出すスクリプトは次のように書けます。
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import codecs sys.stdin = codecs.getreader('euc_jp')(sys.stdin) sys.stdout = codecs.getwriter('shift_jis')(sys.stdout) for line in sys.stdin: print line,
読み書きするファイルの文字コードを指定して開く事もできます。 次の例は、euc_jp で書かれたファイルeuc.txtを読み、shift_jis の文字コードで sjis.txt というファイルに書き出します。
#!/usr/bin/env python # -*- coding: utf-8 -*- import codecs fin = codecs.open('euc.txt', 'r', 'euc_jp') fout = codecs.open('sjis.txt', 'w', 'shift_jis') for line in fin: fout.write(line)
#!/usr/bin/env python # -*- coding: utf-8 -*- import codecs fout = codecs.open('sjis.txt', 'w', 'shift_jis') for line in codecs.open('euc.txt', 'r', 'euc_jp'): fout.write(line)
Updated 2013-12-08, Taku Yamanaka