我试图用前导 0 分割一个字符串,但我得到了很多无效的标记。我知道python会将前导0解释为八进制数。我想要做的是将“Jan-01,2005”拆分为 ['Jan-01','2005']。我试图将其转换为字符串,但我仍然有同样的错误。我所做的是,
def split_fileB(line):
first=str(line.split(','))
return first
有谁知道如何保持格式?
我试图用前导 0 分割一个字符串,但我得到了很多无效的标记。我知道python会将前导0解释为八进制数。我想要做的是将“Jan-01,2005”拆分为 ['Jan-01','2005']。我试图将其转换为字符串,但我仍然有同样的错误。我所做的是,
def split_fileB(line):
first=str(line.split(','))
return first
有谁知道如何保持格式?
您可以使用 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