我有一个小的python脚本,它使用库来生成随机日期(mm / dd / yyyy)和基于12小时时钟的随机时间..
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作为例子。
答案 0 :(得分:2)
您的括号位于错误的位置,导致您将两个参数传递给.writerow()
而不是单个元组。
尝试将您的元组创建与函数调用分开。这应该使代码更容易阅读。
row = (
randomDate("1/1/2016 12:00 AM", "1/1/2017 12:00 AM", random.random()),
randomPhone(),
)
writer.writerow(row)