前回の不明点が残ったままですが、、
ここも少し内容量が増えてきて、自分的に若干メモリ不足気味・・・。
はじめの一歩段階なので頑張ります。
#with open : ファイルの読込み
with open('ファイル名(パス)', encoding='utf-8') as f: #ファイル名をutf-8(文字コード)で開いてfに代入するよ
for row in f: #fを1行ずつ出力するよ
print(row)
出力結果
りんご, 100
ばなな, 200
みかん, 350
#rstrip : 行末の改行を削除
with open('ファイル名(パス)', encoding='utf-8') as f:
for row in f:
F1 = row.rstrip() #行末にある改行を削除するよ
print(F1)
出力結果
りんご, 100
ばなな, 200
みかん, 350
#split : 文字列の分割
with open('ファイル名(パス)', encoding='utf-8') as f:
for row in f:
F1 = row.rstrip().split(',') #1行ずつ出力したfをカンマごとで区切って表示
print(F1)
出力結果
['りんご', '100']
['ばなな', '200']
['みかん', '350']
#集計して表示
区切ったものを個別に代入
inputディレクトリ の L1.csvファイル に以下の様なデータが入っているとする。
好きな飲み物
TARO,コーヒー
JIRO,カフェオレ
SABU,水
--以下略--
このデータを読み込んで集計するよ。
favorite = {} #favoriteって名前の空の辞書を作成
with open('input/L1.csv', encoding='utf-8') as f: #ファイルを開いてfって変数に代入するよ。
for row in f: #データを代入されてるfを1行ごと表示するよ
columns = row.rstrip().split(',') #一行ごとに出力したものをカンマで区切って変数columnsに代入
name = columns[0] #カンマで区切った1つ目をnameって名前で指定する
drink = columns[1] #区切った2つ目をdrinkって名前で指定する
if drink in favorite: #辞書の中にドリンクがあれば
favorite[drink] += 1 #そのドリンクに+1する
else:
favorite[drink] = 1 #なければそのままにする
for f_drink, count in favorite.items(): #辞書の中の全てからカウントしたものを変数に代入
print(f_drink + ':' + str(count))
出力結果
コーヒー:3
カフェオレ:2
水:1
--以下略--
★分からんポイント
①if文:elseの時に1って指定しているのがイマイチピンとこない。。
②最後のfor文:for ~ in ~って構文で覚えていたけど、今回のはカンマが入っている。
あとinの後の辞書名の後のitems。コレは調べると「全てのキー:keys,値:valuesを~」って書いていたけど、これもイマイチピンとこない。。