我正在尝试将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)) )


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

输出文件:
7,0
8,0
9,0
1,0,0
11,144
12,112
13,80

有谁知道为什么会这样,我能做些什么来防止这种结果?

最佳答案

谢谢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
11,144
12,112
13,80
...

关于python - python中的csv编写器输出不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43237078/

10-12 01:32
查看更多