python

时间:2017-04-05 16:46:03

标签: python python-2.7

我正在尝试将csv格式的数据写入文件。我写的数据是整数对。不一致的是,当写入数字10时,我在" 1"之间得到一个逗号。和" 0"。这恰好发生在10号,而不是11号等。

代码:

clocktimes = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]

with open('testfile.csv', 'w') as tf:
    writer = csv.writer(tf)
    for hour in clocktimes:
        if hour in hourtimes:
            writer.writerow( str((hour)).split(',') + str((hourtimes[hour])).split(',') )
        else:
            writer.writerow( (str(hour)) + (str(0)) )

(hourtimes是一个由整数作为键和值组成的字典)

输出文件:
7,0
8,0
9,0
1,0,0
11144个
12,112
13,80

有谁知道为什么会这样,以及我可以做些什么来阻止这种结果?

1 个答案:

答案 0 :(得分:1)

谢谢Random Davis
我阅读了文档并进行了一些实验,并提出了这个解决方案:

for hour in clocktimes:
        if hour in hourtimes:
            data = [hour, hourtimes[hour]]
            writer.writerow(data)
        else:
            data = [hour, 0]
            writer.writerow(data)

要写入的数据被添加到writerow()方法接受的数组中。输出现在正如我所希望的那样:
...
7,0
8,0
9,0
10,0
11144个
12,112
13,80
...