2015-07-21 70 views
-1

我正在爲一個學校項目在python中創建一個簡單的隨機數生成器。這是我到目前爲止:在Python中將變量導出爲CSV文件

import random 

amnt = input('Please enter the amount of numbers you would like:') 
for i in range(0,amnt): 


      x = random.randint(0,100000000) 
      print x 

這有理想的結果,它會根據用戶輸入生成一定數量的隨機數。我現在需要解決的問題是如何將生成的數字導出到一個CSV文件中,以便分析它們。我相信CSV模塊需要導入和實現,但我不知道如何做到這一點。我正在嘗試分析隨機模塊的有效性,以便寫出一篇文章,以便能夠使用excel對數字進行排序和過濾將會非常有幫助。對代碼的任何更改或修改也將非常感謝。

+1

我沒有看到任何數據結構,CSV不會允許你存儲無意義的數據。 – rednaks

+0

您需要製作一份清單,然後閱讀:https://docs.python.org/2/library/csv.html#examples和https://docs.python.org/3/library/csv.html#examples – shuttle87

+1

@rednaks:如果數據每行僅包含一個值,則不需要額外的「數據結構化」就可以將其視爲有效的csv文件。 @thesctt:只需打開一個文件並使用'file.write(str(x)+'\ n')'向它寫入行。 – martineau

回答

0
import random 
import csv 

amnt = input('Please enter the amount of numbers you would like:') 
ofile = open('ttest.csv', "wb") 
writer = csv.writer(ofile, delimiter=',') 
for i in range(0,amnt): 
    x = random.randint(0,100000000) 
    writer.writerow([x]) 
ofile.close() 

可能是您的問題的快速解決方案。 writerow會向你的csv寫一行。既然你想在Excel中打開它,我寫了一個數字/行,所以你可以根據列來訂購它。

但是,您也可以編程排序數字而不必使用excel。正如一些人已經提到的CSV特別針對存儲數據結構。

更多信息可以在csv module documentation

1

沒有發現,你爲這個簡單的情況下,這樣做不是真正的csv模塊。您只需創建一個文本文件,其中的值由逗號分隔。 (因此名稱,逗號分隔值,CSV)。

試試這個:

import random 

amnt = int(raw_input('Please enter the amount of numbers you would like:')) 
data = (random.randint(0,100000000) for _ in range(amnt)) 
data = (str(datum) for datum in data) 
data = ','.join(data) + '\n' 
with open("random.csv", "w") as fp: 
    fp.write(data)