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