⛳
Shift-JISからUTF-8への一括変換方法
はじめに
昔の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}")
スクリプトの使い方
- Python 3がインストールされていることを確認する。
- 上記のスクリプトを保存し、
convert_encoding.py
などの名前で保存する。 -
shift-jis
フォルダ内のCSVファイルが変換対象になるので、対象のフォルダをスクリプトと同じ場所に配置する。 - コマンドラインでスクリプトを実行する。
python convert_encoding.py
- 変換後のファイルは
utf8
フォルダ内に保存される。
注意点
- UTF-8へ変換後のファイルは元のファイルとは別に保存されます。元のファイルを削除する場合は、手動で確認した後に行うようにしてください。
-
shift-jis
フォルダが存在しない場合はエラーになりますので、事前に作成してください。 - CSVファイル以外を変換する場合は、スクリプトの
filename.endswith('.csv')
を適宜修正してください。
まとめ
Shift-JISからUTF-8への変換は、Pythonを使用すると簡単に自動化できます。昔のWindows環境で作成されたCSVファイルを最新のシステムで扱いやすくするために、このスクリプトを活用してください。
Discussion
↓の記事にあるとおり、
'shift_jis'
という指定はあまり推奨できません。