Python 无法从格式正确的字符串中获取日期时间

Python 无法从格式正确的字符串中获取日期时间,python,datetime,Python,Datetime,我用这段代码从文件中的行中获取时间 for line in f: try: dt = parser.parse(line).replace(tzinfo=None) print dt except Exception, e: print line print(traceback.format_exc()) continue Trace

我用这段代码从文件中的行中获取时间

    for line in f:
        try:
            dt = parser.parse(line).replace(tzinfo=None)
            print dt
        except Exception, e:
            print line
            print(traceback.format_exc())
            continue


Traceback (most recent call last):
  File "./script.py", line 90, in read
    dt = parser.parse(line).replace(tzinfo=None)
AttributeError: 'ArgumentParser' object has no attribute 'parse'

你能做的最好的事情就是学会用简单的打印语句来调试你的问题

for line in f:
    try:
        dt = parser.parse(line).replace(tzinfo=None)\
        print "SUCCESS:",dt
    except Exception as e:
        traceback.print_exc()
        print "UNABLE TO PARSE: %r"%line
        continue

现在你应该能很快找到问题所在。。。很明显,这行代码看起来不像您的示例

检查您在代码中分配
解析器
名称的位置

比较:

>>> from argparse import ArgumentParser
>>> parser = ArgumentParser()
>>> s = 'Fri May 15 11:22:54 EDT 2015'
>>> parser.parse(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'ArgumentParser' object has no attribute 'parse'

尝试使用
strip()
t=parser.parse(line.strip()).replace(tzinfo=None)
而不是只对异常执行
continue
,如何打印回溯,以便您(和我们)能够确切地知道问题所在?正在调试101@Kasra不dateutil.parser不关心额外的whitespace@JoranBeasley谢谢,我不知道!你可以
>>> from dateutil import parser
>>> parser.parse(s)
datetime.datetime(2015, 5, 15, 11, 22, 54)