Python和Strptime的差异当变量设置或从文件读取但确切相同的值

时间:2016-01-05 14:12:41

标签: python datetime 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 = '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'

将其作为竞赛时间已经从文件中读取。未转换的数据仍然是空白或者其他东西,但似乎没有。

为了增加奇怪性,我使用了几乎与XML完全相同的东西并且它运行良好。读入时间设置为XML,Python的.text能够将其与当前时间进行比较而没有问题。

我无法绕过这个。看起来很蠢,我不知道有什么愚蠢的东西,但我在这里没有想法。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

一行结尾,例如&#39; \ r \ n&#39;可能是问题。