【Python】連続したファイル名のcsvファイルのエンコードをJIS→UTF-8に変換

投稿者: | 2017-02-07

複数のファイルをRで扱うときに、Shift_JIS方式になっていると文字化けしてしまいます。
そのため、すべてのファイルをUTF-8変換する必要があります。

年別のデータを扱うことが多くファイル名が連続しており、規則的な処理になるためなんとか一気に処理できないかと思っていました。

Rでまとめてエンコードを変換することが難しそうだったので、pythonでやってみました。

 

例は、2007.csv, 2008.csv,…, 2014.csvなどという名前のcsvファイルをShift_JIS方式から、UTF-8方式へと変換するやり方です。

 

import codecs

for i in range(2007, 2015):
# ↑2007から2014までをiに代入
    shiftjis_csv_path = '/Users/ファイルの場所'+ str(i)+'.csv'
    # UTF-8 ファイルのパス
    utf8_csv_path = '/Users/ファイルの場所'+ str(i) +'.csv'
    # 文字コードを utf-8 に変換して保存
    fin = codecs.open(shiftjis_csv_path, "r", "shift_jis")
    fout_utf = codecs.open(utf8_csv_path, "w", "utf-8")
    for row in fin:
        fout_utf.write(row)
    fin.close()
    fout_utf.close()

 

隔年のデータ(例:1996年、1998年、…2014年、2016年)のときは以下です。

 

import codecs
 
for i in range(998, 1008):
# ↑2007から2014までをiに代入
    shiftjis_csv_path = '/Users/moritatomohiro/Google drive/R/ginident/data/dentist/JIS/'+str(2*i)+'.csv'
    # UTF-8 ファイルのパス
    utf8_csv_path = '/Users/moritatomohiro/Google drive/R/ginident/data/dentist/'+ str(2*i) +'.csv'
    # 文字コードを utf-8 に変換して保存
    fin = codecs.open(shiftjis_csv_path, "r", "shift_jis")
    fout_utf = codecs.open(utf8_csv_path, "w", "utf-8")
    for row in fin:
        fout_utf.write(row)
    fin.close()
    fout_utf.close()

 

以下を参考にしました。

http://qiita.com/nskydiving/items/c900c27042bcd11517ee

Pocket

コメントを残す

メールアドレスが公開されることはありません。