stmtkブログ

Python中心の技術ブログです。

【Python】ファイルの文字コードを変換する

機能

ファイルの文字コードを変換するPythonプログラムです。

例えば、以下のコマンドを実行すると文字コードshift_jisのファイルをutf-8に変換します。

python file_encoder.py input shift_jis utf-8

実行前

実行後

サンプル動画

youtu.be

プログラム

#! Python3
# 機能
#  ファイルの文字コードを変換する
# 使い方
#  1.Pythonを実行する
# 実行コマンド
#  python file_encoder.py パス 入力文字コード 出力文字コード
#  python file_encoder.py input shift_jis utf-8

import os
import sys
import codecs

# ファイルの文字コードを変換する関数
def encode_file(path, enc_from, enc_to):
    for file_name in os.listdir(path):
        print("Encoding {}...".format(file_name))
        file_path = os.path.join(path, file_name)

        # ファイル読み込み
        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)


if len(sys.argv) != 4:
    sys.exit("使い方:python file_encoder.py パス 入力文字コード 出力文字コード")

encode_file(sys.argv[1], sys.argv[2], sys.argv[3])

使い方

  1. Pythonを実行する

実行コマンド

python file_encoder.py パス 入力文字コード 出力文字コード
python file_encoder.py input shift_jis utf-8

参考文献

qiita.com