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

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

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

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

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

解決済

1回答

390閲覧

CSVでダブルクォーテーションで囲って出力したい

HirokiTomimura

総合スコア26

CSV

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

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

1クリップ

投稿2022/10/01 10:46

編集2022/10/01 10:53

前提

pythonでネットショップ(ECCUBE4)用の商品CSVを作っているのですが、
商品画像ファイルが複数あるとダブルクォーテーションで囲まないといけないのですがどのように書き出せばよいでしょうか?

CSVファイルの一つのコンマ区切りに複数のファイルを入れたい

実現したいこと


a=商品コード,商品名,金額,商品画像,個数

a=A-001,コーラ,100,"1.jpg,2,jpg,3.jpg",10

['A-0476/A-0476-1.jpg', 'A-0476/A-0476-2.jpg', 'A-0476/A-0476-3.jpg']

[ " 'A-0476/A-0476-1.jpg', 'A-0476/A-0476-2.jpg', 'A-0476/A-0476-3.jpg' " ]
こうしたい

該当のソースコード

python

1import os 2import csv 3from csv import writer 4 5path = "/Volumes/SSD2TB/写真" 6 7folder = os.listdir(path) 8folder = sorted(folder) 9#print(folder) 10 11header = ['商品ID','公開ステータス(ID)','商品名','商品説明(一覧)','商品説明(詳細)','検索ワード','販売種別(ID)','商品コード','在庫数','在庫数無制限フラグ','通常価格','販売価格','商品画像','商品カテゴリ(ID)','タグ(ID)'] 12 13#ヘッダー挿入 14with open('test.csv', 'a', newline='') as f: 15 writer = csv.writer(f) 16 writer.writerow(header) 17 18#フォルダーの数だけ回す 19for i in range(len(folder)): 20 21 path2 = path+"/"+folder[i] 22 folderfile = os.listdir(path2) 23 file = [f for f in folderfile if os.path.isfile(os.path.join(path2, f))] 24 file = sorted(file) 25 print(file) 26 27 #フォルダー + ファイル名 して 書き込み直し 28 for num in range(len(file)): 29 file[num]=folder[i]+"/"+file[num] 30 print(file[num]) 31 #A-0001-1.jpg → A-0001/A-0001-1.jpg 32 33 # csvモジュールを使って1行の内容をCSVファイルに書き込み 34 with open('test.csv', 'a', newline='') as f: 35 writer = csv.writer(f) 36 writer.writerow(file)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

','.joinでカンマ区切りの文字列に変換したうえでwriterrowすればよいです。

Python

1import csv 2 3files = ['1.jpg','2.jpg','3.jpg'] 4files = ','.join(files) 5 6row = ['A-001','コーラ',100,files,10] 7with open('test.csv', 'w', newline='') as f: 8 writer = csv.writer(f) 9 writer.writerow(row) # A-001,コーラ,100,"1.jpg,2.jpg,3.jpg",10

投稿2022/10/01 22:56

can110

総合スコア38268

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問