python - Python字符串不匹配
问题描述
我对 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
解决方案
所以如果你仔细看,你会发现你的ci_time
变量实际上有一个尾随空格:
ci_time
>>'08:00 '
您可以使用以下方法删除它:
ci_time.strip()
>>'08:00'
或者,您可以将字符串切片中的索引更新为[14:19]
推荐阅读
- search - Grep 部分搜索但打印整个匹配的单词
- php - APNS 推送通知未发送且未出现任何错误
- python - 使用 VS Code 调试器以模块模式运行 python 文件
- deep-learning - ValueError:尺寸必须相等,但为 512 和 1024
- string-matching - 如何将匹配的字符存储在变量中,而不是在 SNOBOL 中替换它们
- unit-testing - 如何在 Clojure 中运行单元测试时抑制异常输出
- abp - ABP IdentityServer 客户端管理
- javascript - 如何将我的交易部署到 eth 网络?我将我的系统终端与 infura 主网一起使用,但它似乎不起作用
- javascript - CSS中的模糊文本动画
- c# - 单元测试时如何在 Blazor 中模拟 InputFile (csv)?