Shift-JISからUTF-8への一括変換方法

に公開1

はじめに

昔のWindows環境では、Shift-JIS (SJIS) エンコーディングが標準的に使用されていました。しかし、現在ではUTF-8が主流となっており、異なるエンコーディング間での文字化けが問題になることがあります。

特に、システム移行やデータの統合を行う際に、Shift-JISで保存されたファイルをUTF-8に変換する必要が出てくることが多いです。この記事では、フォルダ内のすべてのShift-JISファイルをUTF-8に変換するPythonスクリプトを紹介します。

必要な環境

  • Python 3.x

スクリプトの説明

以下のPythonスクリプトを使用すると、指定したフォルダ内のすべてのShift-JISエンコードされたCSVファイルをUTF-8に変換できます。

import os
import codecs

# スクリプトがあるディレクトリを基準にする
base_dir = os.path.dirname(os.path.abspath(__file__))

# 入力ディレクトリと出力ディレクトリのパスを指定
input_dir = os.path.join(base_dir, 'shift-jis')
output_dir = os.path.join(base_dir, 'utf8')

# 出力ディレクトリが存在しない場合は作成
if not os.path.exists(output_dir):
    os.makedirs(output_dir)

# 指定ディレクトリ内のすべてのCSVファイルを処理
for filename in os.listdir(input_dir):
    if filename.endswith('.csv'):
        input_file = os.path.join(input_dir, filename)
        output_file = os.path.join(output_dir, filename)
        
        # Shift-JISからUTF-8に変換
        with codecs.open(input_file, 'r', 'shift_jis') as file:
            content = file.read()
        
        with codecs.open(output_file, 'w', 'utf-8') as file:
            file.write(content)
        
        print(f"変換が完了しました: {filename}")

スクリプトの使い方

  1. Python 3がインストールされていることを確認する。
  2. 上記のスクリプトを保存し、convert_encoding.py などの名前で保存する。
  3. shift-jis フォルダ内のCSVファイルが変換対象になるので、対象のフォルダをスクリプトと同じ場所に配置する。
  4. コマンドラインでスクリプトを実行する。
    python convert_encoding.py
    
  5. 変換後のファイルは utf8 フォルダ内に保存される。

注意点

  • UTF-8へ変換後のファイルは元のファイルとは別に保存されます。元のファイルを削除する場合は、手動で確認した後に行うようにしてください。
  • shift-jis フォルダが存在しない場合はエラーになりますので、事前に作成してください。
  • CSVファイル以外を変換する場合は、スクリプトの filename.endswith('.csv') を適宜修正してください。

まとめ

Shift-JISからUTF-8への変換は、Pythonを使用すると簡単に自動化できます。昔のWindows環境で作成されたCSVファイルを最新のシステムで扱いやすくするために、このスクリプトを活用してください。

Discussion