[Home] [Setting up Mac OS X]
[Python]: [ファイルを読む] 日本語を使う


Pythonで日本語を使う

Python 2.4以降では、標準で日本語を扱うことができます。

PythonのソースコードをUTF-8で書くには

日本語を扱う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.'
			

UTF-8の文字をプリントするには

日本語の入った文字列を標準出力にprintするには、次のようにするのが楽です

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import codecs

sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
print u'これで日本語も打てます。'
			

標準入出力(sys.stdin, sys.stdout)で用いる文字コードを指定するには

例えば、文字コード 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