Python 和变量设置或从文件读取但值完全相同时的Strptime差异
Python and Strptime Difference When Variable Set or Read From File But Exact Same Value
在那里争取世界上最差的头衔,但我基本上可以用一句话概括这种怪异。
这很好用:
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
它 returns 完全一样 2016-01-05 13:39:53.968000.
我看不到任何额外的空白 space 或文件或 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'
并将其保留为已经从文件中读取的比赛时间。未转换的数据对我来说仍然是白色 space 之类的,但似乎没有。
更奇怪的是,我使用了与 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
行尾如“\r\n”可能是问题所在。
在那里争取世界上最差的头衔,但我基本上可以用一句话概括这种怪异。
这很好用:
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
它 returns 完全一样 2016-01-05 13:39:53.968000.
我看不到任何额外的空白 space 或文件或 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'
并将其保留为已经从文件中读取的比赛时间。未转换的数据对我来说仍然是白色 space 之类的,但似乎没有。
更奇怪的是,我使用了与 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
行尾如“\r\n”可能是问题所在。