我有一系列字符串,我正试图将其解析为日期。它们的形式(001是儒略日)
code_36763.letters_81m_2013_001_0000.dat
只是不构成日期的数字会改变,所以在通配符中
^{pr2}$我的第一个想法是datetime.datetime.strptime
,但是我得到一个错误,说ValueError: time data does not match format
,这意味着{dateutil.parser
,但是当我这么做的时候
from dateutil.parser import parse
f='code_36763.letters_81m_2013_001_0000.dat'
parse(f, fuzzy=True)
我知道错误了
TypeError: 'NoneType' object is not iterable
这可能意味着其他的数字正在妨碍我们。在
有没有一种方法可以解决这个问题,而不需要手动切割其他数字?我这么问是因为我要写的代码应该足够通用,其他数字可以在字符串的不同位置。在
你所拥有的字符串似乎是相当固定的格式。如果是这种情况,那么下面的方法可能就足够了,它只需将开头部分切去,以便适合
strptime
:给出输出:
^{pr2}$我会使用正则表达式:
然后,您可以将数字转换为整数并相应地传递它们。有关该步骤的帮助,请参见Convert julian day into date。在
使用
re.sub
将文件名重新格式化为strptime
可以解析的文件名。在相关问题 更多 >
编程相关推荐