0

計算した数値から csv を生成する Python スクリプトを作成しました。

私が書く行は次のとおりです。

writeRow = [str(t), len(c) , {k for k in c.keys()}, {k for k in c.values()}]

2 つの問題があります。

  1. tは 0 から始まる数値です。ただし、その場合は 0 が削除されます。無しにしてみstr()ましたが変わりません…

  2. セットは、セル内のセットとして印刷されます。ただし、これらの数字をカンマで区切って同じセルに書きたいのですが、{}どうすればそれを行うことができますか?

編集

csv モジュールを使用しています。コードでは、書き込む行ごとにリストを作成し、csv.writerow で書き込みます。

さらにコードを投稿します。

from csv import reader, writer
with open(fileName1) as inp, open(fileName2,'w') as o:

次に、リーダー、ライター、および変数 t,c を定義します。

writeRow = [str(t), len(c) , {k for k in c.keys()}, {k for k in c.values()}]

次に、結果を出力ファイルに書き込みます

t の編集 形式と行の外観

t = 023 t = 123 t は int です

最後の行は次のようになります。

cell1  cell2         cell3       cell4 
123    2     string1,string2    num1,num2

string1 と str2 は dict キーです。num1,num2 対応する値

4

3 に答える 3

2

まず、このjoin()メソッドを利用できます (キーと値が文字列であると仮定します)。

",".join(c.keys()) + "," + ",".join(c.values())

これにより、コンマが処理されます。ただし、これは重要なデータに対して非常に簡単に壊れてしまうため、代わりにcsvモジュールを使用することを検討してください。これにより、危険な文字のエスケープが処理されます。

于 2013-10-31T21:52:20.620 に答える