-1:お詫び(2020/06/12)
たぶんきっとおそらくもしかしたら清書します。あと基本このページつけ足していくんじゃないっすかね。知らんけど。
あと船井的解釈があるので厳密には間違ってる部分があります。前書き以降は鵜呑みにしないで。
00:前書き(2020/06/12)
私はなんでか知りませんがpythonを使ってなんやかんやなんやかんやすることが多い存在です。んで、プログラマーでもないくせにプログラムでなんかするって場合なんかのファイルをなんやかんやなんやかんやしてなんやかんやなんやかんやすることを目的とするんですね。んで、私が一番使うのはcsvなんですわよ。
さて、ここで初回のブログ記事を思い出してくださいな。船井さんはおつむが悪いので任意の事象を3歩歩いたら忘れてしまいます。これはいけませんねぇ。csvのファイルを読み込むときどうするんだっけ?csv書き出すと空行が入っちゃうんだけどそれ消すにはどうすればいいんだっけ?毎回忘れてしまうのです。おばかなのかな……でも私をズタズタにしそうな悪魔もいないしついてきてくれる人もいません。Helltakerをやれ。そして船井さんは気付きます、「もうメモ書き作っちゃおう。」賢いね。賢いかな?賢くないからこの記事書いているんですよ。
ってわけで生まれたのがこのページ。他のフォロワーが書いてるような限界ブログ記事を船井に書いてほしかった人はごめんなさいな。
01:本文・読み込み
import csv with open("csvfile.csv", "r", encoding="utf-8_sig") as f: reader = csv.reader(f) header = next(reader) csvlist= [] for row in reader: csvlist.append(row)
csvfile:ファイル名
encoding:そういうこと
as f:このファイルをfって名前で開いてるよ的なやつ
header = next(reader):ヘッダー行をスキップ
csv.reader(csvfile, delimiter=',', quotechar='"')とかその辺はあんまり使わないっていうかcsvファイル作るのも私だからね。必要になったら書いておこうね。ここら辺、身内だけで完結してるメリットですわよ。私が作ったプログラムコードに触れるの2人しかいないから。
追記:delimiterはcsv.reader()の箇所に書く。これで今日10分位虚無に消えました。反省してください。
02:本文・書き込み
l = [[33,4],[2005,0]] import csv with open("csvfile.csv", "w", encoding="utf-8_sig", newline="") as f: writer = csv.writer(f, delimiter=",") writer.writerow([0, 1, 2]) writer.writerows(l)
newline="":で空行問題は何とかなる。
複数行のリストならwriterows()、一行ならwriterow、だった気がする。理由は知らないけど。
with open("csvfile.csv", "a", encoding="utf-8_sig", newline="") as f:
で書き加え形式になる。ところでutf-8とutf-8_sigとどっちがいいのかね?
encodingを忘れるとunicodedecodeErrorみたいなのが出るので忘れずにやっときましょう。win環境限定とのうわさを聞いたけどwinしか基本的に使わないものでしてね。いやUbuntu時折使うけど。
「横にデカいデータの時、Excelで開けないんだけど」
「だったら縦にデカくすればいいだろ!」
writer = csv.writer(f, delimiter="\n")