-3

我试图用前导 0 分割一个字符串,但我得到了很多无效的标记。我知道python会将前导0解释为八进制数。我想要做的是将“Jan-01,2005”拆分为 ['Jan-01','2005']。我试图将其转换为字符串,但我仍然有同样的错误。我所做的是,

def split_fileB(line):
     first=str(line.split(',')) 
     return first

有谁知道如何保持格式?

4

1 回答 1

0

您可以使用 python regexp 模块来拆分您的字符串,并找到由一位或多位数字组成的子字符串的出现。

import re
pattern = re.compile("([0-9]+)")

s = "foo bar Jan-01 03-56, blah"
toks = pattern.split(s)

# toks is ['foo bar Jan-', '01', ' ', '03', '-', '56', ', blah']

如果您的格式完全是“MMM-DD,YYYY”,那么您可以使用类似这样的内容(改编自问题)。我假设您正试图从中提取一天?

def get_day_number(line):
   month_day, year = line.split(",", 1) # '1' splits at most once
   month, day = month_day.split("-", 1)
   return int(day, 10)

在您尝试使用将字符串转换为整数之前,您提到的八进制数问题不会发生int(s)。您可以通过显式指定基数来强制整数转换使用小数,这是 python 中的一般良好做法。

s = "010"
i = int(s, 10)
print i # 10
于 2015-11-19T18:26:56.857 回答