質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

226閲覧

csvの要素をファイル名にして別名保存時に空要素があった場合の対応方法について

_Mar85

総合スコア13

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/12/07 02:37

以下のようなCSVファイルを読み込み、1行ずつ別ファイルとして保存したいです。
ファイル名には読み込んだ要素を利用したいのですが、一部、空の要素が入っているため、想定通りのファイルを作成出来てません。
空要素があった場合は、直前の行と同じ要素を使ってファイル名としたいのですが、実現方法の調査方法が不明のため質問させて下さい。
下記ファイルの場合、ファイル名を「20181207_AAA_1-1.txt」とし、データは「テキストa」としたく、
ここまでは実現出来ているのですが、2行目のファイル名を「20181207_AAA_1-2.txt」とする方法が不明で詰まっています。
どのように対応すれば良いかご教示頂けますでしょうか。
宜しくお願い致します。

読み込み対象ファイルイメージ

20181207,AAA,1-1,テキストa
,,1-2,テキストb

ソースコード

python

1import csv 2 3csv_file = open("test.csv", "r", encoding="utf_8") 4f = csv.reader(csv_file) 5for i in f: 6 with open(i[1]+"_"+i[2]+".txt", "w", encoding="utf_8") as f2: 7 f2.write(i[3])

環境

Windows10
Python3.6.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のように、以前の各ファイル名部分を保持してけばよいかと思います。

Python

1import csv 2csv_file = open("test.csv", "r", encoding="utf_8") 3f = csv.reader(csv_file) 4fnames = ['','',''] # 以前のファイル名部分を保持 5for i in f: 6 # 空ではない要素のみファイル名として採用 7 for j in range(3): 8 if len(i[j]) > 0: 9 fnames[j] = i[j] 10 11 path = '{}_{}_{}.txt'.format(*fnames) 12 with open( path, "w", encoding="utf_8") as f2: 13 f2.write(i[3])

投稿2018/12/07 02:54

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_Mar85

2018/12/07 04:33

早速のご回答ありがとうございます! 投稿後、値を保持すればいいんだろうと思いつつ、どのように実装していいか悩んでいたので、このように処理すれば良いと分かり助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問