在那里争取世界上最糟糕的头衔,但我基本上可以将这种怪异现象概括为一行。
这工作正常:
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/