如何格式化日期和时间时间戳???
以下是一些示例数据" 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
答案 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)