ページへ戻る
− Links
印刷
Python/CSVファイルの読み込みと書き込み
の編集 ::
NJF Wiki
xpwiki
:
Python
/
CSVファイルの読み込みと書き込み
の編集
# rf8c79ef の編集
ページ内容:
*CSVファイルの読み込み [#rf8c79ef] まず以下のテストファイルを「test.csv」という名前で用意したとします。 ID,name,comment 1,山本,こんにちは 2,松本,こんばんは 3,中本,さようなら 文字コードはUTF-8を使って下さい。ファイル形式がそれ以外の場合はUTF-8に変換してから処理するのが無難です。 csvファイルの読み込みは以下のようにできます。 import csv f = open("test.csv") csvData = csv.reader(f) for row in csvData: print row[0],row[1],row[2] f.close() 結果 ID name comment 1 山本 こんにちは 2 松本 こんばんは 3 中本 さようなら 次の記法でも全く同じことができます。 import csv with open('test.csv', 'rb') as f: reader = csv.reader(f) for row in reader: print row[0],row[1],row[2] 読み出しの型はstrになっています。 with open('test.csv', 'rb') as f: reader = csv.reader(f) for row in reader: print type(row[1]) 結果 <type 'str'> <type 'str'> <type 'str'> <type 'str'> 最初からUTF-8として読み込めないかとやってみましたが、エラーとなりました。 f = codecs.open("test.csv", 'r', 'utf_8') csvData = csv.reader(f) for low in csvData: print low[0],type(low[1]),low[2] f.close() 結果 ID <type 'str'> comment Traceback (most recent call last): File "csvTest.py", line 15, in <module> for low in csvData: UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3: ordinal not in range(128) 読み込んだあとにUTF-8に変換すると良いでしょう。変換方法は「[[Python/Unicodeの取り扱い]]」を参照のこと。 引用符で囲まれ、改行コードを含むようなデータにも対応しています。 test.csvを以下のように書き換えると、 ID,name,comment 1,山本,こんにちは 2,松本,こんばんは 3,中本,"さようなら また明日" 全てのデータを書き出した結果は、 ID name comment 1 山本 こんにちは 2 松本 こんばんは 3 中本 さようなら また明日 となり、問題なく引用符が消され、改行コードも残っています。 csvのフォーマットについてはデフォルトではエクセルの書き出しの書式になっているようです。変更可能ですが、ほとんどの場合そのままで良いのでここでは省略します。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「名古屋」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Python%2FCSV%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%81%A8%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF