格式化时间,Python

时间:2016-11-08 22:10:28

标签: python

如何格式化日期和时间时间戳???

以下是一些示例数据" data1.csv":

Mary,11/13/16 10:38
John,11/14/16 12:53
Paul,11/13/16 14:45
Ringo,11/13/16 12:17
George,11/14/16 10:15

我想创建一个包含三列的文件。 第一列是名称。 第二列只是日期' mm / dd / yy'。 第三列只是时间' HH:MM',在军事时间。

这是我正在使用并希望保留的代码。

def process_data(raw_data):
    with open(raw_data) as inputs:
        for line in inputs:
            name, time = line.strip().split(",")
            mylist = list()
            mylist.append(name)
            mylist.append(time)    #As 'mm/dd/yy'
            mylist.append(time)    #As 'HH:MM'
            print ",".join(mylist)

if __name__ == "__main__":
    process_data("data1.csv")

此外,将其保存到csv文件的正确方法将有助于我的理智 最终文件应该有:

Mary,11/13/16,10:38
John,11/14/16,12:53
Paul,11/13/16,14:45
Ringo,11/13/16,12:17
George,11/14/16,10:15

3 个答案:

答案 0 :(得分:1)

如果您真正想要的是用逗号替换空格,那么最简单的方法(如评论中所述)将是

line.strip().replace('', ',')

您可以使用Python的内置datetime包将每个字符串转换为日期时间对象。然后,您可以在将它们写入新文件时提取所需的部分。

import datetime.datetime as dt

name, time_string = line.strip().split(',')
time_object = dt.strptime(time_string, '%m/%d/%y %H:%M')
date = time_object.strftime('%m/%d/%y')
time = time_object.strftime('%H:%M')

如果您愿意,这可以让您灵活地轻松更改格式。

答案 1 :(得分:0)

$ cat input
Mary,11/13/16 10:38
John,11/14/16 12:53
Paul,11/13/16 14:45
Ringo,11/13/16 12:17
George,11/14/16 10:15

$ cat time_.py
import csv
with open("input") as reader, open("output.csv", "w") as writer:
    writer = csv.writer(writer, delimiter=",", quoting=csv.QUOTE_NONE)
    for line in reader.readlines():
        name, time = line.strip().split(",")
        day, clock = time.split()
        writer.writerow((name, day, clock))

$ python time_.py

$ cat output
Mary,11/13/16,10:38
John,11/14/16,12:53
Paul,11/13/16,14:45
Ringo,11/13/16,12:17
George,11/14/16,10:15

答案 2 :(得分:0)

这样的事情可以胜任。

from datetime import datetime
import tablib

DATE_FORMAT = '%m/%d/%y'
TIME_FORMAT = '%H:%M'

data = [
    ('Mary', '11/13/16 10:38'),
    ('John', '11/14/16 12:53'),
    ('Paul', '11/13/16 14:45'),
    ('Ringo', '11/13/16 12:17'),
    ('George', '11/14/16 10:15'),
]

results = tablib.Dataset()

for item in data:
    name, datetime_string = item
    _datetime = datetime.strptime(datetime_string, '{} {}'.format(DATE_FORMAT, TIME_FORMAT))
    date = _datetime.strftime(DATE_FORMAT)
    time = _datetime.strftime(TIME_FORMAT)

    results.append((name, date, time))

print(results.csv)