我对Python很陌生,尝试计算一些时间,使来自不同来源的两个字符串相等,但是在测试时为FALSE。从单个行文件中提取第一个字符串,另一个在代码中设置为变量。两者都显示为str,具有相同的视在值,但如果检查为相等,则为FALSE。
from datetime import datetime
file=open("test.db","r")
for i in file:
print(i)
print(repr(i))
print(str(i.rstrip('\n')))
ci_time = (str((i.rstrip('\n'))[14:20]))
print(ci_time)
ci_time1 = '08:00'
print(type(ci_time))
print(ci_time)
print(type(ci_time1))
print(ci_time1)
print(ci_time == ci_time1)
file.close()
Here is my output...
$ python3 test.py
CI 2018-11-23 08:00 CO 2018-11-23 17:00
'CI 2018-11-23 08:00 CO 2018-11-23 17:00\n'
CI 2018-11-23 08:00 CO 2018-11-23 17:00
08:00
<class 'str'>
08:00
<class 'str'>
08:00
False
答案 0 :(得分:0)
因此,如果仔细看,您会发现ci_time
变量实际上有一个尾随空格:
ci_time
>>'08:00 '
您可以使用以下方法将其删除:
ci_time.strip()
>>'08:00'
或者,您也可以将字符串切片中的索引更新为[14:19]
答案 1 :(得分:0)
尝试将strip()
添加到ci_time
,如下所示,您需要在ci_time
中去除空格。
print(ci_time.strip() == ci_time1)
ci = 'CI 2018-11-23 08:00 CO 2018-11-23 17:00'
print len(str(ci[14:20])) --6
print len(str(ci[14:20]).strip()) --5