2009-06-25 23 views

回答

5

一個想法是這樣的(未經測試):

years, months, days = the_string.split('-') 
days, time = days.split(' ') 
time = time.split(':') 

還是這個,它適合你的數據更好。

date, time = the_string.split(' ') 
years, months, days = date.split('-') 
hours, minute, seconds = time.split(":") 
13

我猜你也想拆就在中間的空間:

import re 
values = re.split(r'[- :]', "1122-33-44 55:66:77") 
print values 
# Prints ['1122', '33', '44', '55', '66', '77'] 
0

使用正則表達式,並使用模式匹配所需的格式,

>>> pat = r"(\d{4})-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)" 
>>> m = re.match(pat,'0000-00-00 00:00:00') 
>>> m.groups() 
('0000', '00', '00', '00', '00', '00') 
>>> 

一個更詳細的選項,名爲組,將字段名稱與值(對於@skurpur)。

>>> pat = "(?P<year>\d{4})-(?P<month>\d\d)-(?P<day>\d\d) (?P<hour>\d\d):(?P<min>\d\d):(?P<sec>\d\d)" 
>>> m = re.match(pat,'0000-00-00 00:00:00') 
>>> m.groupdict() 
{'hour': '00', 'min': '00', 'month': '00', 'sec': '00', 'year': '0000', 'day': '00'} 
>>> 
+0

...改變 「P」 到 「拍」。 :)此外,「\ d {4}」會更好的IMO,然後使用r「」而不是普通字符串來保證安全。 – 2009-06-25 09:27:20

+0

謝謝,重新格式化。如何(?P \ d {4})組? – gimel 2009-06-25 09:41:29

2

也許你真正想要的是解析日期

>>> from time import strptime 
>>> strptime('2000-01-01 00:00:00', '%Y-%m-%d %H:%M:%S') 
time.struct_time(tm_year=2000, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=1, tm_isdst=-1) 
>>> 
相關問題