我的文件名中包含完整的日期和时间。我想提取特定格式并将其打印为我正在写的CSV的第一行。

我的文件名如下:

VIN5_2019-04-03_10-21-26_38


我希望我的CSV的第一行打印如下:

date Wed Apr 3 10:21:26.000 am 2019


我的代码如下:

import can
import csv
import datetime
import re

filename = open('C:\\Users\\xyz\\files\\time_linear_Hexa.csv', "w")
log1 = can.BLFReader('C:\\Users\\xyz\\blf files\\VIN5_2019-04-03_10-33-59_39.blf')
filename.write(re.search("([0-9]{4}\-[0-9]{2}\-[0-9]{2})", filename))
filename.write('base hex  timestamps absolute\ninternal events logged \n// version 11.0.0 \n')


如何以与文件图像相同的格式实现日期和时间,如下面的屏幕快照所示?

python - 从文件名中提取“WeekDay Month Date HH:MM:SS”?-LMLPHP

最佳答案

您可以使用前瞻性和宽松性来提取日期时间字符串,使用strptime将其转换为日期时间对象,然后使用strftime将其格式化为所需的形式。

import re
import datetime from datetime
s = "VIN5_2019-04-03_10-21-26_38"

res = re.search('(?<=\w{5})[\w-]*(?=_\d{2})', s)
dt_string = res[0]

dt = datetime.strptime(dt_string, '%Y-%m-%d_%H-%M-%S')

'{} {} {}'.format(dt.strftime('%a %b %d %H:%M:%S.%f')[:-3], dt.strftime('%p').lower(), dt.strftime('%Y'))

09-30 12:32
查看更多