python - 为什么python说一个字符串与另一个字符串不匹配
问题描述
所以我有一个名为的文本文件words.txt
,它包含 3 个单词:
apple
ship
door
我想要做的是要求用户输入一个单词然后搜索文件以查看是否有这样的单词,如果没有添加它:
def search(word):
file = open("words.txt", "r+")
for line in file:
if line == word:
return False
file.write(word + "\n")
return True
然后我使用该函数检查并打印结果,但问题是当我输入单词ship或列表中的任何其他单词时,它应该说它不存在。
解决方案
遍历文本文件时,行终止符\n
保留在循环索引中。您需要在比较之前将其删除:
def search(word):
file = open("words.txt", "r+")
for line in file:
if line.rstrip('\n') == word:
return False
file.write(word + "\n")
return True
如果文件中的任何前导和尾随空格不重要,则可以简化line.rstrip('\n')
为line.strip()
.
>>> " foo \n".rstrip('\n')
" foo "
>>> " foo \n".strip()
"foo"
推荐阅读
- opencv - findcontour 函数给了我不正确的轮廓数
- java - 具有 set 属性的 Hibernate 子类,如何将 set 属性分隔到有表的不同类
- c++ - 我应该在 stoi() 函数中放入多少位
- vagrant - 如何按创建时间对快照进行排序?
- python-2.7 - 多个子进程中的 Pyhtion 2.7 记录器不会将信息记录到日志文件中
- python - 检查素数:任何数都是素数?
- android - org.gradle.api.tasks.TaskExecutionException:任务':app:javaPreCompileDebug'的执行失败
- r - 将 ggplot2 箱线图循环保存为列表
- c++ - 如何解决这个 C++ 访问冲突问题?
- reactjs - 努力初始化初始状态并连接