关于如何使用 python csv 模块将数据正确写回 CSV 文件的快速问题。目前,我正在导入一个文件,提取一列日期并使用 datetime 模块制作一列 days_of_the_week 。然后我想写出一个新的 csv 文件(或覆盖单个文件),其中包含一个原始元素和新元素。
with open('new_dates.csv') as csvfile2:
readCSV2 = csv.reader(csvfile2, delimiter=',')
incoming = []
for row in readCSV2:
readin = row[0]
time = row[1]
year, month, day = (int(x) for x in readin.split('-'))
ans = datetime.date(year, month, day)
wkday = ans.strftime("%A")
incoming.append(wkday)
incoming.append(time)
with open('new_dates2.csv', 'w') as out_file:
out_file.write('\n'.join(incoming))
输入文件如下所示:
2017-03-02,09:25
2017-03-01,06:45
2017-02-28,23:49
2017-02-28,19:34
使用此代码时,我最终得到一个如下所示的输出文件:
Friday
15:23
Friday
14:41
Friday
13:54
Friday
7:13
我需要的是一个如下所示的输出文件:
Friday,15:23
Friday,14:41
Friday,13:54
Friday,7:13
如果我将 out_file.write 中的分隔符更改为逗号,我只会获得每列的一个数据元素,如下所示:
Friday 15:23 Friday 14:41 Friday 13:54 ....
如有任何想法,我们将不胜感激。谢谢!
最佳答案
由于不太清楚您想要什么格式,我假设您只需要在 wkday
和 time
之间添加一个空格。为了快速修复,不要像示例中那样单独附加 wkday
和 time
,而是将它们附加在一起:
...
incoming.append('{} {}'.format(wkday,time))
...
或者,将您的传入
构建为列表列表:
...
incoming.append([wkday,time])
...
并将您的写入更改为:
with open('new_dates2.csv', 'w') as out_file:
out_file.write('\n'.join([' '.join(t) for t in incoming]))
关于python CSV writer - 格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43638280/