我试图将数据写入CSV文件。我有来自几个传感器的数据和来自实时时钟的时间/日期。 传感器数据很好,但是我在圆圈中进行了格式化RTC数据。我已经尝试了很多东西,并且阅读了与我老化的大脑可以处理的相关的相关帖子。
时钟数据以val
表示#print "second =", val[0]
#print "minute =", val[1]
#print "hour =", val[2]
#print "day of week =", val[3]
#print "day of month =", val[4]
#print "month =", val[5]
#print "year =", val[6]
例如,这打印时间后跟日期。
print "RTC Time is ", val[2], ":", val[1], ":", val[0]
print "RTC Date is ", val[4], "/", val[5], "/", "20",val[6]
我最接近我真正想要的是。
import csv
datetime = val[6],val[5],val[4],val[2],val[1],val[0]
filecsv = open('tidelog.csv', 'a+') #writing to csv log file
writer = csv.writer(filecsv,dialect='excel')
stuff = [datetime, temp_inside, humidity, press, response]
writer.writerow(stuff)
filecsv.close()
输出csv看起来像这样
"(14, 3, 28, 15, 52, 37)",29,47,1005,2208
日期/时间yy mm dd hh mm ss在引号内
我想要得到的是第一列中连字符分隔符的日期时间,如下所示。
14-3-28-15-52-37,29,47,1005,2208
任何帮助将不胜感激
德里克
答案 0 :(得分:1)
您可以将join
与连字符一起使用:
>>> val
[37, 52, 15, 4, 28, 3, 14]
>>> '-'.join(str(x) for x in [val[6],val[5],val[4],val[2],val[1],val[0]])
'14-3-28-15-52-37'
您的方法不起作用,因为您隐式创建了一个元组:
>>> 1,2,3
(1, 2, 3)
>>> val[6],val[5],val[4],val[2],val[1],val[0]
(14, 3, 28, 15, 52, 37)
修改的
如评论中所述,您可以在列表中使用reversed,而不是按索引编制索引:
>>> list(reversed([1,2,3,4,5]))
[5, 4, 3, 2, 1]