3

csv ファイルに書き込むデータの行を指定しています。ほとんどが float 型の数値です。ただし、csv ファイルに書き込むと、セルはデフォルトでカスタム形式になります。したがって、3.25 のような入力番号がある場合、「3 月 25 日」と出力されます。どうすればこれを回避できますか?
これはコードの一部です:

data = [0.21, 3.25, 25.9, 5.2]  
f = open('Boot.csv','w')  
out = csv.writer(f, delimiter=';', quoting=csv.QUOTE_NONE)  
out.writerow(data)  
4

6 に答える 6

5

csvモジュールはデータを正常に書き込んでいます。結果を確認するために Excel で開いており、Excel がデータを日付としてオートフォーマットすることを決定していると思います。

これは Excel の問題です。テキスト (または一般的ではないもの) に変更して、そのフィールドをいじらないように指示する必要があります。

Excel データを作成している場合は、xlwtモジュールを確認することをお勧めします (非常に便利なサイトhttp://www.python-excel.org/を確認してください)。値の型がそれほど変動しにくくなります。

于 2012-11-14T11:12:32.733 に答える
3

これは問題ではなく、MS Excel が「助けよう」としているだけです。出力 csv ファイルをプログラムでさらに処理する場合は、問題はありません。

Excel でデータを処理/表示する必要がある場合は、(csv.QUOTE_NONE ではなく csv.QUOTE_ALL を使用して) すべてのデータを引用したい場合があります。

于 2012-11-14T12:15:25.467 に答える
1

これは の一部ではありませんcsvcsvコンマ区切りの値にすぎません。ファイルをメモ帳で開くと、期待どおりになります。

これを Excel で開くと、各値が何を表しているかが推測されます。これは、この情報が CSV ファイルにエンコードされておらず、エンコードできないためです。何らかの理由で、Excel は3.25数値ではなく日付を表すと判断します。

于 2012-11-14T11:16:58.543 に答える
0

これは、作成したコードの問題ではありません。Excel(CSVを開くために使用する可能性が高い)を使用しています--として解釈3.25していMarch 25ます. 影響を受けるセルを選択し、右クリックして [セルの書式設定] をクリックし、[数値] タブでカテゴリとして [数値] を選択して、適切な小数点以下の桁数が表示されるようにすることで、これを修正できます。

于 2012-11-14T15:08:08.767 に答える
0

日付として誤解されない形式を使用してみてください。

out.writerow(['%.12f' % item for item in data])

これには末尾のゼロが含まれるため、常に Excel によって数値として解析される必要があります。

于 2012-11-14T11:35:52.253 に答える