代码之家  ›  专栏  ›  技术社区  ›  sqram

使用不同的sep将字符串@拆分一次

  •  0
  • sqram  · 技术社区  · 15 年前
    datetime =  '0000-00-00 00:00:00'.split('-')
    

    现在,它只是在连字符处拆分它,但是否可以在-'和:'处拆分此字符串?

    4 回复  |  直到 15 年前
        1
  •  5
  •   S.Lott    15 年前

    一个想法是这样的(未经测试):

    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(":")
    
        2
  •  13
  •   RichieHindle    15 年前

    我猜你还想在中间的空间上分裂:

    import re
    values = re.split(r'[- :]', "1122-33-44 55:66:77")
    print values
    # Prints ['1122', '33', '44', '55', '66', '77']
    
        3
  •  2
  •   fabmilo    15 年前

    也许你真正想要的是分析日期

    >>> 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)
    >>>
    
        4
  •  0
  •   Community kfsone    7 年前

    使用regexps,并使用模式匹配所需的格式,

    >>> 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'}
    >>>