将随机Python数据写入CSV文件

时间:2017-03-31 19:48:22

标签: python python-2.7 csv

我有一个小的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作为例子。

1 个答案:

答案 0 :(得分:2)

您的括号位于错误的位置,导致您将两个参数传递给.writerow()而不是单个元组。

尝试将您的元组创建与函数调用分开。这应该使代码更容易阅读。

row = (
    randomDate("1/1/2016 12:00 AM", "1/1/2017 12:00 AM", random.random()), 
    randomPhone(),
)
writer.writerow(row)