2016-01-05 13 views
3

去世界上最糟糕的標題那裏,但我基本上可以總結這個怪異在一行。Python和Strptime的區別當變量設置或從文件中讀取但具有相同的值

這工作得很好:

dnow=datetime.datetime.now() 
racetime = '2016-01-05 13:39:53.968000' 
NewRaceTime = datetime.datetime.strptime(racetime, '%Y-%m-%d %H:%M:%S.%f') 
timedifference = dnow - NewRaceTime 

但當racetime從文件在完全一樣的格式讀取,它不會工作。

如果我刪除racetime = '2016-01-05 13:39:53.968000'事情開始橫向。

如果我使用:

print racetime 

它返回一模一樣2016-01-05 13:39:53.968000.我看不到的文件或IDE任何額外的空格或任何東西。據我所知,它是完全一樣的。

但是,即使沒有明顯的區別Python是找到的東西:

Traceback (most recent call last): 
    File "C:/Users/Desktop/PycharmProjects/Project/Script.py", line 153, in <module> 
    NewRaceTime = datetime.datetime.strptime(racetime, '%Y-%m-%d %H:%M:%S.%f') 
    File "C:\Python27\lib\_strptime.py", line 328, in _strptime 
    data_string[found.end():]) 
ValueError: unconverted data remains: 

有一個在我沒有任何區別設置

racetime = '2016-01-05 13:39:53.968000' 

而且把它當作racetime已經從文件中讀取。未轉換的數據仍然表示空白或我的東西,但似乎沒有任何。

爲了增加奇怪性,我用了幾乎完全相同的東西與XML,它的工作正常。閱讀時間將它設置爲.text來自XML並且Python能夠將其與當前時間進行比較而沒有問題。

我無法圍繞此包裹我的頭。看起來愚蠢的是我必須有一些愚蠢的東西,但我在這裏沒有想法。

回答

1

您在文件末尾有一個新行\n。你可以這樣去除它:

import datetime 

dnow = datetime.datetime.now() 

with open("test.txt", 'r') as f: 
    racetime = f.read() 
racetime = racetime.rstrip() 

NewRaceTime = datetime.datetime.strptime(racetime, '%Y-%m-%d %H:%M:%S.%f') 
timedifference = dnow - NewRaceTime 

print racetime 
+0

現貨!來自.net的Python看起來有點不同。感謝您花時間幫助我。 – PoweredByCoffee

1

以'\ r \ n'結尾的行可能是問題。

相關問題