2016-08-21 71 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

相關問題