テーブル形式のデータを作ったcsvファイルを、きれいに読み込んでいきます。
読み込むcsvは以下の通り。実行するpyファイルと同じディレクトリに置きます。
id,name,password 1,tanaka,hogehoge 2,sugino,sugisugi 3,haruka,hogahoga
まずは、ファイルを読み込みカラム名をリストで取得してみます。
csv_file = open('sample.csv', 'r')
column_list = csv_file.readline().split(',')
print(column_list) # =>['id', 'name', 'password\n']
1行目にカラム名があるので、readline().split(‘,’)でカラムを1つずつとり、リスト化します。
しかし、最後の要素に改行が含まれてしまっています。
readline()は1行文とってくるので、最後の改行まで読み込んでしまいました。
これを解決するには、rstrip()を使用します。
csv_file = open('sample.csv', 'r')
column_list = csv_file.readline().rstrip().split(',')
print(column_list) # =>['id', 'name', 'password']
rstrip()をreadline()で1行読み込み後に使用することで、末尾の改行、スペース、タブを削除してくれます。
では、実際にテーブル指向で読み込んで、そのデータを使ってtsvファイルのようにタブ区切りのデータとして表示させたプログラムが下記です。
csv_file = open('sample.csv', 'r')
column_list = csv_file.readline().rstrip().split(',')
# 最後までファイルを1行ずつ読み込み、リストにレコードをいれる。
recoad_list = []
recoad = csv_file.readline()
while recoad :
recoad_list.append(recoad.rstrip().split(','))
recoad = csv_file.readline()
# 下記のデータが入ります。
# column_list => ['id', 'name', 'password']
# recoad_list => [['1', 'tanaka', 'hogehoge'], ['2', 'sugino', 'sugisugi'], ['3', 'haruka', 'hogahoga']]
# タブ区切りをjoin()で行い、表形式にして見やすくする。
print('\t'.join(column_list))
for recoad in recoad_list:
print('\t'.join(recoad))
実行結果
id name password 1 tanaka hogehoge 2 sugino sugisugi 3 haruka hogahoga
