【Python】ファイルの文字コードを変換する
機能
例えば、以下のコマンドを実行すると文字コードがshift_jisのファイルをutf-8に変換します。
python file_encoder.py input shift_jis utf-8
実行前
実行後
サンプル動画
プログラム
#! Python3 # 機能 # ファイルの文字コードを変換する # 使い方 # 1.Pythonを実行する # 実行コマンド # python file_encoder.py パス 入力文字コード 出力文字コード # python file_encoder.py input shift_jis utf-8 import os import sys import codecs if len(sys.argv) != 4: sys.exit("使い方:python file_encoder.py パス 入力文字コード 出力文字コード") path = sys.argv[1] enc_from = sys.argv[2] enc_to = sys.argv[3] for file_name in os.listdir(path): file_path = os.path.join(path, file_name) print("Encoding {}...".format(file_path)) # 入力文字コードでファイルを読み込む with codecs.open(file_path, "r", enc_from) as file: row_data = [] for row in file: row_data.append(row) # 出力文字コードでファイルに書き込む with codecs.open(file_path, "w", enc_to) as file: for row in row_data: file.write(row)
使い方
- Pythonを実行する
コマンド
実行コマンド
python file_encoder.py パス 入力文字コード 出力文字コード python file_encoder.py input shift_jis utf-8
実行環境
プログラム実行時の環境は以下になります。
開発環境については以下を参考にして下さい。
プログラムのバッチ化については以下を参考にして下さい。
exeファイル
Python環境がなくても実行可能なexeファイルもあります。
とりあえず試してみたい方は以下からダウンロードして下さい。
実行方法
コマンドラインから以下のコマンドを実行して下さい。
file_encoder.exe パス 入力文字コード 出力文字コード file_encoder.exe input shift_jis utf-8
GitHub
今回使用したプログラムやテストデータはGitHubにアップロードしています。