Pythonでos.systemを使ってファイルの文字コード変更
普段,ファイルの文字コードを変更する時は,
「nkf」を使っています.
macでは,macport経由で簡単にインストールできます.
1 | $ sudo port install nkf |
使いかたは,
↑で,以前書いた通りですが,とっても簡単で,
test.txtを上書きで「shiftJIS」 → 「UTF-8」に変換したい場合は,
1 | $ nkf -w --overwrite test.txt |
とするだけ,
改行コードも一緒に変更するのも簡単で,
1 | $ nkf -w -Lu --overwrite test.txt |
とすれば,「-Lu」で改行コードを「LF」に変更してくれます.
私は,Pyhtonでファイルを読み込むときは,文字コードを「UTF-8」で,改行コードを「LF」としたいため,ファイルを読み込む前に,「os.system」を使ってファイルを変換しています.
test.txtの変換をしたいときは,
1 2 3 4 | import os input_file_name = "test.txt" os.system("nkf -w -Lu --overwrite %s" % input_file_name) |
とすると,変換されます.
ファイル出力時に,ShiftJISに変換したい場合は,
1 2 3 4 | import os output_file_name = "out.txt" os.system("nkf -s --overwrite %s" & output_file_name) |
として,shiftJISに変換して出力できます.
Pythonの関数を使うのも便利ですが,使いなれたシェル上の関数を簡単に使えるのがos.systemの便利なところですね.
文字列フォーマットとして,差し込み(%を使って)もあわせれば,いろいろとできそうです.
とっても快適に.
Leave a comment