首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改csv文件中所有行中的日期时间格式

更改csv文件中所有行中的日期时间格式
EN

Stack Overflow用户
提问于 2018-06-17 19:00:00
回答 2查看 2.2K关注 0票数 0

我有一个csv文件,里面有这个表格中的数据。

代码语言:javascript
复制
2018-06-01T09:20:00+0530,16.85,16.9,16.85,16.9,1000
2018-06-01T09:21:00+0530,16.9,17,16.9,17,500
2018-06-01T09:22:00+0530,17,17,15.5,15.5,500
2018-06-01T09:23:00+0530,15.5,15.5,15.5,15.5,0

我要把它变成这种格式..。

代码语言:javascript
复制
01/06/2018 09:20:00,16.85,16.9,16.85,16.9,1000
01/06/2018 09:21:00,16.9,17,16.9,17,500
01/06/2018 09:22:00,17,17,15.5,15.5,500
01/06/2018 09:23:00,15.5,15.5,15.5,15.5,0

基本上,日期格式必须更改文件中所有行的日期格式。我无法对此进行编码,使用宏是相当痛苦的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-19 08:47:37

在pythonVersion2.7.15上工作的最后代码来自于马丁·埃文斯发布的代码,如下所示:

代码语言:javascript
复制
from datetime import datetime
import csv

with open('f:\Downloads\Sample.csv') as f_input, open('f:\Downloads\Temp.csv', 'w') as f_output:
    csv_input = csv.reader(f_input)
    csv_output = csv.writer(f_output)
    csv_input.next()                            # skip header line
    for row in csv_input:
        dt = datetime.strptime(row[0], '%Y-%m-%dT%H:%M:%S+0530')    #parse the datetime
        row[0] = dt.strftime('%d/%m/%Y %H:%M:%S')           #assign the revised format
        csv_output.writerow(row)

谢谢大家..。

票数 0
EN

Stack Overflow用户

发布于 2018-06-18 09:47:56

这可以使用Python的CSV和datetime库完成,如下所示:

代码语言:javascript
复制
from datetime import datetime
import csv

with open('input.csv', 'rb') as f_input, open('output.csv', 'wb') as f_output:
    csv_input = csv.reader(f_input)
    csv_output = csv.writer(f_output)

    for row in csv_input:
        dt = datetime.strptime(row[0], '%Y-%m-%dT%H:%M:%S%z')
        row[0] = dt.strftime('%d/%m/%Y %H:%M:%S')
        csv_output.writerow(row)

这将创建一个包含以下内容的output.csv文件:

代码语言:javascript
复制
01/06/2018 09:20:00,16.85,16.9,16.85,16.9,1000
01/06/2018 09:21:00,16.9,17,16.9,17,500
01/06/2018 09:22:00,17,17,15.5,15.5,500
01/06/2018 09:23:00,15.5,15.5,15.5,15.5,0

strptime()用于将现有日期转换为Python datetime对象。然后可以使用strftime()函数将其转换回所需的格式。它们使用一种特殊的格式来使用格式规范标识日期的部分。

csv库用于读取文件中的一行,并自动将其拆分为包含字符串列表的行。row[0]保存第一个值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50899612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档