Python 检查文件中的单词是否以有效的方式出现在SQL查询中
我有一个.txt文件,其中包含由Python 检查文件中的单词是否以有效的方式出现在SQL查询中,python,sql,string,python-2.7,sqlite,Python,Sql,String,Python 2.7,Sqlite,我有一个.txt文件,其中包含由,分隔的单词和小短语,我希望看到这些单词中的哪一个出现在 for cur.execute中的行(“从业务id=(?),(s,))的审阅中选择文本):(s从外部for循环中获取值)。 我的目标是,每当.txt文件中的一个单词出现在SQL查询返回的行中时,向计数器添加+1(这些行是大小不同的字符串,通常大到足以使对它们进行切片并分别检查每个单词非常耗时)。 还有别的办法吗? 我所尝试的: for words in line: with open("good_wo
,
分隔的单词和小短语,我希望看到这些单词中的哪一个出现在
for cur.execute中的行(“从业务id=(?),(s,))的审阅中选择文本):
(s从外部for循环中获取值)。
我的目标是,每当.txt文件中的一个单词出现在SQL查询返回的行中时,向计数器添加+1(这些行是大小不同的字符串,通常大到足以使对它们进行切片并分别检查每个单词非常耗时)。
还有别的办法吗?
我所尝试的:
for words in line:
with open("good_words.txt", "r") as check:
for x in check:
if x in words:
goods += 1
这会导致我的电脑烧坏并基本崩溃。将所有单词和短语读入regexp列表
good_words = []
with open("good_words.txt", "r") as f:
for line in f:
good_words.append(re.compile(r'\b' + re.escape(line) + r'\b'))
for line in cur.execute("select text from reviews where business_id = (?) ", (s,)):
for word in good_words:
if word.search(line[0]):
goods += 1
\b
匹配单词边界,因此您不必将行拆分为单词。您可以将单词转换为正则表达式,然后使用regexp搜索它们。是否将RegEx中的每个单词和短语转换为多个if-then-else语句?这同样耗时,但我会试试。对于第行中的单词:
迭代行中的字符,而不是单词。对于line.split()中的单词,它应该是,
Noif/then/else
语句,只是一个迭代所有regexp的for
循环。@Barmar我如何拆分元组?