python - 从 txt 文件中读取单词以进行单词过滤
问题描述
这是我试图使用的代码,以便从我的 words.txt 文件中的数组中读取单词,但目前不起作用并且无法弄清楚如何执行此操作。
@client.listen('on_message')
async def msgfilter(message, member: discord.Member = None):
wordfilter = open("filter.txt", "r")
words = set(message.content.split())
if not words.isdisjoint(wordfilter.read):
await ctx.send("No")
目前,我只是将这些词直接放在我的 main.py 文件中,并且如果启用了审核模块,则用户无法说出的单词数组中大约有 50,000 个单词。
这些都在我的 main.py 文件中,但是为了避免成员规避这些限制的组合使其更长。但它目前使文档编辑或保存/关闭文件的速度变慢。
如何从文件中的数组中读取每个单词并检查用户消息中的单词是否包含在此文档中?
这是 words.txt 文档的示例,其中包含数组中的单词。
wordfilter = ['badword', 'badword', 'badword', 'badword', 'badword', 'badword']
解决方案
wordfilter = open("filter.txt", "r")
words = set(message.content.split())
filter_words = [w[1:-1] for w in wordfilter.read().strip().split(", ")]
if not words.isdisjoint(filter_words):
await ctx.send("No")
wordfilter.close()
假设您的 filter.txt 包含格式中的信息'word1', 'word2', 'word3', ...
。
你的程序很慢是正常的;50k 字很多,每次发送消息时您都要重新打开文件。您可能想看看是否可以将文件内容保留在内存中。不过,我真的不明白为什么它会崩溃。
推荐阅读
- assembly - 使用用户选项更改颜色
- docker - shared:ERROR: BINARYEN_ROOT 在 /root/.emscripten 中设置为空值
- objective-c - 我应该忽略 _NSCoreDataConstraintViolationException 吗?
- python - 如何处理LSTMCell中的“输入形状轴1必须等于xx”
- javascript - 在javascript中创建带有系列的堆积柱形图
- python - 任何人都有这个错误的解决方案“TypeError: a bytes-like object is required, not 'int'”
- swift - 使我的 ViewController 符合 NSDraggingDestination 协议
- java - 带有spring boot JPA Postresql的data.sql未加载
- c++ - 使用 `std::error_code` 的最佳实践
- python - 拆分列表并保留python中的空格