在那里争取世界上最糟糕的头衔,但我基本上可以将这种怪异现象概括为一行。

这工作正常:

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'

并将其保留为已经从文件中读取的比赛时间。未转换的数据对我来说仍然是空白或其他东西,但似乎没有。

更奇怪的是,我对 XML 使用了几乎完全相同的东西,而且效果很好。读取时间将其设置为 XML 中的 .text,Python 能够将其与当前时间进行比较,没有问题。

我无法解决这个问题。我错过了一些愚蠢的东西,但我在这里没有想法,这似乎很愚蠢。

最佳答案

您在文件末尾有一个新行 \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

关于当变量设置或从文件读取但值完全相同时 Python 和 Strptime 的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34613708/

10-12 20:01