2016-01-05 7 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. Насколько я вижу, это то же самое.

Но даже если нет видимых различий Питон найти что-то:

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».