csv
Pythonの標準ライブラリでcsv形式のファイルの読み書きが可能となっています。
下記、サンプルとなります。
# -*- coding: utf-8 -*-
import csv
import codecs
class CustomFormat(csv.excel):
quoting = csv.QUOTE_ALL
# delimiter = '\t'
csv_file = codecs.open('./python.csv', 'w', 'shift_jis')
writer = csv.writer(csv_file, CustomFormat())
row = ('python', '-', 'izm', '1')
writer.writerow(row)
rows = []
rows.append(('python', '-', 'izm', '2'))
rows.append(('python', '-', 'izm', '3'))
rows.append(('p,y,t,h,o,n', '-', 'i,z,m', '4'))
writer.writerows(rows)
csv_file.close()
--生成ファイル:「python.csv」--
"python","-","izm","1" "python","-","izm","2" "python","-","izm","3" "p,y,t,h,o,n","-","i,z,m","4"
3行目、4行目で必要なモジュールをインポートします。 10行目では出力ファイルパスとエンコードを指定し、ファイルをオープンします。
# -*- coding: utf-8 -*-
import csv
import codecs
class CustomFormat(csv.excel):
quoting = csv.QUOTE_ALL
# delimiter = '\t'
csv_file = codecs.open('./python.csv', 'w', 'shift_jis')
writer = csv.writer(csv_file, CustomFormat())
row = ('python', '-', 'izm', '1')
writer.writerow(row)
rows = []
rows.append(('python', '-', 'izm', '2'))
rows.append(('python', '-', 'izm', '3'))
rows.append(('p,y,t,h,o,n', '-', 'i,z,m', '4'))
writer.writerows(rows)
csv_file.close()
11行目でcsvライターを取得していますが、第二引数のクラスに注目です。 これはcsvファイルの出力書式を定義したクラスとなります。
「quoting」はクォートスタイルを指定します。 デフォルトではデリミタが要素に含まれている場合のみクォーティングされますが、 サンプルでは常にクォーティングするように指定しています。
「delimiter」はコメントアウトされていますが、指定する事もできますという意味合いで載せておきました。 デフォルトでは「 , 」(カンマ)になります。
# -*- coding: utf-8 -*-
import csv
import codecs
class CustomFormat(csv.excel):
quoting = csv.QUOTE_ALL
# delimiter = '\t'
csv_file = codecs.open('./python.csv', 'w', 'shift_jis')
writer = csv.writer(csv_file, CustomFormat())
row = ('python', '-', 'izm', '1')
writer.writerow(row)
rows = []
rows.append(('python', '-', 'izm', '2'))
rows.append(('python', '-', 'izm', '3'))
rows.append(('p,y,t,h,o,n', '-', 'i,z,m', '4'))
writer.writerows(rows)
csv_file.close()
14行目でタプルを渡し、csvファイルへ書き込みを行っています。これは一行だけの書き込みです。
# -*- coding: utf-8 -*-
import csv
import codecs
class CustomFormat(csv.excel):
quoting = csv.QUOTE_ALL
# delimiter = '\t'
csv_file = codecs.open('./python.csv', 'w', 'shift_jis')
writer = csv.writer(csv_file, CustomFormat())
row = ('python', '-', 'izm', '1')
writer.writerow(row)
rows = []
rows.append(('python', '-', 'izm', '2'))
rows.append(('python', '-', 'izm', '3'))
rows.append(('p,y,t,h,o,n', '-', 'i,z,m', '4'))
writer.writerows(rows)
csv_file.close()
複数行を一度に書き込む事も可能です。 サンプルではリストへ一行あたりの各値を設定したタプルを追加し、「writerows」関数で一気に3行の書き込みを行っています。
# -*- coding: utf-8 -*-
import csv
import codecs
class CustomFormat(csv.excel):
quoting = csv.QUOTE_ALL
# delimiter = '\t'
csv_file = codecs.open('./python.csv', 'w', 'shift_jis')
writer = csv.writer(csv_file, CustomFormat())
row = ('python', '-', 'izm', '1')
writer.writerow(row)
rows = []
rows.append(('python', '-', 'izm', '2'))
rows.append(('python', '-', 'izm', '3'))
rows.append(('p,y,t,h,o,n', '-', 'i,z,m', '4'))
writer.writerows(rows)
csv_file.close()
次はあまり使用する機会はないかも・・・暗号化!
▶応用編:暗号化
