Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python时间戳正则表达式_Python_Timestamp_Expression - Fatal编程技术网

Python时间戳正则表达式

Python时间戳正则表达式,python,timestamp,expression,Python,Timestamp,Expression,有人能帮我把csv文件中的数据写入时间戳列表的代码吗?列表中的数据当前的格式类似于so 03.08.2012 07.11.15 PM。我需要将just time 07:11:15 PM放入actTime数组中。这是我的密码: import csv import re reader = csv.reader(open('main.csv','rb'), delimiter=',',quotechar="'") timeStamp = [] ask = [] regexp = re.compile(

有人能帮我把csv文件中的数据写入时间戳列表的代码吗?列表中的数据当前的格式类似于so 03.08.2012 07.11.15 PM。我需要将just time 07:11:15 PM放入
actTime
数组中。这是我的密码:

import csv
import re
reader = csv.reader(open('main.csv','rb'), delimiter=',',quotechar="'")
timeStamp = []
ask = []
regexp = re.compile('\d{2}:\d{2}:\d{4}')
actTime = []
x = 0
try:
    for row in reader:
        ask.append(row[5:6])
        timeStamp.append(row[7:8])
except csv.Error, e:
    sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))
for item in timeStamp:
    actTime.append(timeStamp[x])
    match = regexp.match(timeStamp[x])
    if match:
        time = int(match.group[x])
    x = x + 1
以下是我收到的错误消息:

回溯(最近一次呼叫最后一次): 文件“rates.py”,第17行,在 match=regexp.match(时间戳[x]) TypeError:应为字符串或缓冲区


行[7:8]
是长度为1的列表,而不是字符串
regexp
需要一个字符串。使用
行[7]

使用

>>> import datetime
>>> t = "03.08.2012 07.11.15 PM"
>>> u = datetime.datetime.strptime(t, "%d.%m.%Y %I.%M.%S %p")
>>> u
datetime.datetime(2012, 8, 3, 19, 11, 15)
>>> u.strftime("%I:%M:%S %p")
'07:11:15 PM'

timeStamp.append(行[7:8])
中,您正在向时间戳列表中追加仅包含一个元素的列表。然后将此列表传递给
regexp.match()
,它需要的是字符串,而不是列表。您的意思是:
timeStamp.append(行[7])
?如何将时间添加到新列表中?例如,我只希望在新列表中显示晚上7:11:15。谢谢。不同的问题,对吗?取决于时间戳的外观。您可能可以使用
戳记[:11]
(例如
行[7][:11]