python - Python:如何在 .txt 文件中搜索整个单词?
问题描述
我一直在寻找解决我的问题的方法:当用户输入一个已经保存在 .txt 文件中的名称时,它应该打印“true”。如果用户名不存在,则应添加用户输入的名称。问题是,当输入的名称为“Julia”时,它甚至会打印出 true,但“Julian”已经在列表中。我希望你明白我的意思。我已经在 stackoverflow 上阅读了 maaany 解决方案,但是在使用 .txt 文件时对我没有任何帮助我的代码:
import mmap
username = input("username: ")
names_file = open("names_file.txt", "a")
paste = bytes(username, 'utf-8')
with open("names_file.txt", "rb", 0) as file, \
mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s:
if s.find(paste) != -1:
print("true")
else:
names_file.write("\n" + username)
print(username + " got added to the list")
names_file.close()
解决方案
您可以在名称后添加换行符并使用换行符搜索名称:
import mmap
username = input("username: ")
names_file = open("names_file.txt", "a")
paste = bytes('\n' + username + '\n', 'utf-8')
with open("names_file.txt", "rb", 0) as file, \
mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s:
if s.find(paste) != -1:
print("true")
else:
names_file.write('\n' + username + '\n')
print(username + " got added to the list")
names_file.close()
这不适用于内部带有空格的名称 - 对于这种情况,您必须定义不同的分隔符(如果所有名称都以大写字母开头并且名称中间没有大写字母,那么您可以省去换行符名字前)
推荐阅读
- mongodb - MongoDB:如何索引未知字段
- javascript - Ember this 在组件的组件中未定义
- php - 弹性搜索更新非法参数异常
- node.js - Botpress中的节点数量有没有限制
- android - requireActivity()、requireContext() 和 requireFragmentManager() 不适用于 AndroidX
- javascript - 是否可以让两个客户端网页在不同的浏览器但相同的域中进行通信?
- c# - C# 应用到 MS SQL 数据库调用堆栈
- symfony - Symfony 3 带有子集合的表单集合
- javascript - Bootstrap Multiselect - 通过onclick取消选择
- c# - 在服务器端处理中两次加载实体框架,数据表抛出错误