2015-07-21 53 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)