随机写Python数据到CSV文件
我有一个使用一个库来生成随机日期(月/日/年)和基于12小时时钟随机时间的一小Python脚本..随机写Python数据到CSV文件
def randomPhone():
n ='0000000000'
while '0' in n[3:6] or n[3:6]=='000':
n = str(random.randint(10**9, 10**10-1))
return n[:3] + '-' + n[3:6] + '-' + n[6:]
randomPhone()
def strTimeProp(start, end, format, prop):
stime = time.mktime(time.strptime(start, format))
etime = time.mktime(time.strptime(end, format))
ptime = stime + prop * (etime - stime)
return time.strftime(format, time.localtime(ptime))
def randomDate(start, end, prop):
return strTimeProp(start, end, '%m/%d/%Y %I:%M %p', prop)
print randomDate("1/1/2016 12:00 AM", "1/1/2017 12:00 AM", random.random())
我有代码来生成其他随机数据,如姓名和电话号码。但首先,我想将日期和时间写入CSV文件,并确保格式正确。所以日期和时间可以正确显示在格式良好的表格中,但是当我尝试添加phoneNumber()
时,我遇到了问题。该表显示,当只有日期/时间参数传递,我怎么想的样子,但增加了到年底的一个电话号码的另一部分,等等
f = open("CDR.csv", 'wt')
try:
writer = csv.writer(f)
writer.writerow(('Date/Time', 'Phone#'))
for i in range(1):
writer.writerow((randomDate("1/1/2016 12:00 AM", "1/1/2017 12:00 AM", random.random())), randomPhone())
finally:
f.close()
print open("CDR.csv", 'rt').read()
不过我'得到一个typeError,'writerow()只需要一个参数,两个给出'
我正在关注CSV Writing作为一个例子。
你的圆括号在错误的地方,导致你传递两个参数到.writerow()
而不是一个元组。
尝试从函数调用中分离出你的元组创建。这应该使代码更易于阅读。
row = (
randomDate("1/1/2016 12:00 AM", "1/1/2017 12:00 AM", random.random()),
randomPhone(),
)
writer.writerow(row)
完美,我跟随的例子把我扔掉了。谢谢。 – DJ2
请注意,我改变了我的建议。我认为这个版本比我之前建议的更具可读性。 –
那是因为你传递2个参数为'writerow' :) –
尝试生成一个'random_row'第一,打印,以确保您了解您所产生的,那么'.writerow(random_row) '有信心。 – 9000
或者确保你的所有funcs都返回字符串,然后将它们连接起来,然后将它们送入'writerow()' – patrick