0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【python】勉強メモ-その3 2次元配列CSV出力

Posted at

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

勉強メモ-その2

5. 最後に

  • ツッコミ歓迎致します。皆様のツッコミが、私のスキルアップにつながります!!
  • お題なんかも出していただけると助かります。
  • 実務では、もっと、こういう使い方もあるよ!!みたいなアドバイスもいただけると嬉しいです。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?