2016-08-21 85 views
1

我的代码读取文本文件中的所有行,并确定它是否是字符串,int或日期..问题是如果它是日期时间读取..如果我试图它转换成一个字符串的DateTime对象,它引发错误:确定行是日期,字符串还是int在Python中

ValueError: unconverted data remains: 

这里是我的代码:

with open('file.txt') as input_file: 
    for i, line in enumerate(input_file): 
     from datetime import datetime 
     try: 
      int(line) 
      print "This is an integer" 
     except: 
      try: 
       date_object = datetime.strptime(line, '%m-%d-%Y') 
       print date_object 
       del date_object 
       print "This is a date" 
      except: 
       print "This is a string" 

我的文本文件包含:

1 
John Doe 
08-15-2016 
+1

你能不能包括完整的错误? – Li357

+1

这段代码在Python 2.7上适合我。你确定错误没有在你提供的块之外的代码上触发吗? – Karin

+0

首先尝试修剪线条(结束时删除空白)。 – hyde

回答

4

看起来像忘了删除'\ n'。您可以修改线路如下: -

date_object = datetime.strptime(line.strip(), '%m-%d-%Y') 

我希望它会解决这个问题

+0

我不明白这是如何解决问题的。不删除换行符只会被'except'块捕获并打印'“这是一个字符串”'而不是触发错误。 – Karin

+0

我不认为这个代码会引发异常处理错误,这个错误会引发异常。错误可以通过删除'\ n'来解决。 – AlokThakur

+0

是的......但是OP发布的代码在'datetime'解析周围有'try'和'except'块,这就是为什么这个问题没有意义。 – Karin

相关问题