2016-05-09 9 views
1

私は乱数を生成するこのコードを持っています。私はそれが実行されるたびに新しい行/行に乱数を保存したい(コード)。Pythonを使用してCSVで新しい行を書き込む方法

newLinenewRowを追加しようとしましたが、機能しませんでした。

import csv 
import random 

newFile = open("random.csv",'w',newline='') 
newWriter = csv.writer(newFile, dialect='excel') 
newRow = [] 
case_number = random.randint(0,1000000000) 
print("Your problem has been stored. We have allocated a case number which will be sent off to a technician. Please take a note of your case number: ", str(case_number)) 
newRow.append(case_number) 
newWriter.writerow(newRow) 
newFile.close() 

このコードをどのように短縮できますか?

ご協力いただければ幸いです。

ありがとうございました!

+0

「機能しませんでした」。どうして?何が起こった? –

+3

ファイルを '' w''の代わりに '' a''を追加モードで開きます。 – JRodDynamite

答えて

1

元のコードに少し変更を加えました。 @ JRodDynamiteにより示唆されるように(追記)「A」と「W」に置き換え

- ファイル内の前のデータを保存するために、新たなデータを追加

追加「を持つ」 - @によって示唆されているように表示名 - リソースを使用するコードが実行を終了すると、リソースが「クリーンアップ」されるようにします。

case_numberを文字列(random intのキャスト)と定義しました。

@ Jason Coleが使用しているCSVライターを使用し続けました。

newRowとappendを削除しました。

import csv 
import random 

with open("random.csv",'a') as newFile: 
    newWriter = csv.writer(newFile, dialect='excel') 
    case_number = str(random.randint(0,1000000000)) 
    print("Your problem has been stored. We have allocated a case number which will be sent off to a technician. Please take a note of your case number: ", case_number) 
    newWriter.writerow([case_number]) 
    newFile.close() 
+2

'with'を使ってコードを改良するのはどうですか? –

+1

@Display Name - コメントありがとう! 「 – Yaron

+0

」が追加されました。そうでなければこれが現実になります。http://www.theallium.com/engineering/computer-programming-to-be-officially-renamed-googling-stackoverflow/ –

関連する問題