1.はじめに
二次元配列を、CSVフィルに書き込む場合、writerows
を使いますが、
writerows
は、全データーを一旦、メモリに読み込むため、データー量が多い場合には
メモリが足りなくなる可能性もあります。
そのような場合は、一行一行書き出すため、writerow
を使います。
2.2次元配列をwriterowで記載する場合
では、2次元配列を、writerows
と同じようにwriterow
で書くと、どうなるでしょうか?
テキストファイル内には、"['犬', 'ネコ', '豚']","['サル', '牛', '鳥']"
と出力されています。
意図した結果と違いますね。
sampel_01.py
import csv
str_li = [
["犬", "ネコ", "豚"],
["サル","牛","鳥"]
]
print(str_li)
# [['犬', 'ネコ', '豚'], ['サル', '牛', '鳥']]
with open("test.csv", "w", encoding="utf_8", newline="") as f:
writer = csv.writer(f)
writer.writerow(str_li)
# 結果
# "['犬', 'ネコ', '豚']","['サル', '牛', '鳥']"
2次元配列を、writerow
を利用してCSVファイルに書き出すには、
for
文(ループ)を使います。意図した通りの結果になります。
sample_02.py
import csv
str_li = [
["犬", "ネコ", "豚"],
["サル","牛","鳥"]
]
print(str_li)
# [['犬', 'ネコ', '豚'], ['サル', '牛', '鳥']]
with open("test.csv", "w", encoding="utf_8", newline="") as f:
writer = csv.writer(f)
for li in str_li:
writer.writerow(li)
# 結果
# 犬,ネコ,豚
# サル,牛,鳥
3. 2次元配列をwriterowsを使って記載する場合
一応、一般的にも紹介されているwriterows
を使ってCSVファイルに書き出すコードも記載しておきます。
sample_03.py
import csv
str_li = [
["犬", "ネコ", "豚"],
["サル","牛","鳥"]
]
print(str_li)
# [['犬', 'ネコ', '豚'], ['サル', '牛', '鳥']]
with open("test.csv", "w", encoding="utf_8", newline="") as f:
writer = csv.writer(f)
writer.writerows(str_li)
# 結果
# 犬,ネコ,豚
# サル,牛,鳥
4.参考
ここまでの内容が、分からない方は、以下のリンクを読み直してみてください。
勉強メモ-その1
5. 最後に
- ツッコミ歓迎致します。皆様のツッコミが、私のスキルアップにつながります!!
- お題なんかも出していただけると助かります。
- 実務では、もっと、こういう使い方もあるよ!!みたいなアドバイスもいただけると嬉しいです。