使用.txt文件关键字搜索大型 CSV



寻找以下解决方案:

我有 1 个大型 CSV(数据.csv(文件,其中包含:

first name | last name | phone number | email address

然后我有一个带有名称列表的.txt文件。文本文件将逐行格式化

smith
johnson
jones

我希望搜索大型CSV,并将包含该关键字的每一整行导出到另一个CSV(结果.csv(

例:

在 Data 中.csv搜索"史密斯、约翰逊、琼斯"(来自关键字.txt(会将整行(如果姓氏匹配(导出到 results.csv。

John Smith, 1234 Main St, 1800-800-8800, etc
John Johnson, 4321 South St...

在这里搜索,我把我正在寻找的一部分放在一起,但仍然需要弄清楚如何根据关键字匹配整行,然后将其导出为 CSV

import re
searchlist = []
with open("keyword.txt") as g:
for line in g:
searchlist.append(line.strip())
pattern = re.compile("|".join(searchlist))
with open("data.csv") as f:
for line in f:

如果您对正则表达式没有特定的需求,则可以使用:

searchlist = []
with open("keyword.txt") as g:
for line in g:
searchlist.append(line.strip())
with open("data.csv") as f:
for line in f:
if any(s in line for s in searchlist):
print(line, end='')

不区分大小写的查找:

if any(s.upper() in line.upper() for s in searchlist):
print(line, end='')

您可以通过在开始时填充 upper(( 关键字填充搜索列表来节省一些额外的 CPU 周期。

最新更新