gpt4 book ai didi

python - String.count() 返回 0,即使文件中存在单词

转载 作者:太空宇宙 更新时间:2023-11-04 09:10:22 25 4
gpt4 key购买 nike

所以这是一个简单的代码,试图找出一个短语(“每种 Assets ”)在多个文件中出现的频率。

import codecs
import glob
import os.path

filelocation = "C:\\Users\\Shoi\\Desktop\\mark project\\BITs\\*.txt"

for filepath in glob.glob(filelocation): # for each file
FILE = codecs.open(filepath, 'r', encoding="utf-8")
if ("every kind of asset" in FILE.read().lower()):
print ("Found in " + os.path.basename(filepath))
freq = FILE.read().lower().count("every kind of asset")
print(freq)
else:
print ("not found in " + os.path.basename(filepath))

但是,即使在某些文件中找到了该短语(打印了“Found in”文件)- 计数函数仍会返回并始终打印 0。

此代码仅搜索单个短语。当我遍历短语列表时,在所有文件中搜索每个短语 - count 函数为某些短语返回完全正确的频率结果,但为其他短语返回 0,即使该短语存在于文件中并打印“found”

请帮忙。

最佳答案

您已经调用了两次 FILE.read()。在第一次调用之后,光标将位于文件末尾,因此第二次调用将返回一个空字符串,其中根本不包含您要查找的字符串。

读取一次内容并将它们存储在一个变量中:

for filepath in glob.glob(filelocation): # for each file
FILE = codecs.open(filepath, 'r', encoding="utf-8")
contents = FILE.read().lower()
if "every kind of asset" in contents:
print("Found in " + os.path.basename(filepath))
freq = contents.count("every kind of asset")
print(freq)
else:
print("not found in " + os.path.basename(filepath))

关于python - String.count() 返回 0,即使文件中存在单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com