Python:使用文件a中的值在另一个fi中搜索行

2024-05-08 22:25:01 发布

您现在位置:Python中文网/ 问答频道 /正文

新手问题

我有两个文件 文件A:列出物品清单(苹果、梨、橘子) 文件B:世界上所有水果的文件(1000000行)

苹果会在unix文件中返回所有结果

在unix中我会的 1grep apple from file b>;>;水果发现.txt 2grep pears来自文件b>;>;水果发现.txt 三。grep oranges from file b>;>;水果发现.txt在

我想要一个python脚本,它使用来自文件a和搜索文件b的值,然后写出输出。注意:文件B将有绿苹果,红苹果,黄苹果,我想把所有3个结果写入水果发现.txt在

致以最诚挚的问候

科尼提


Tags: 文件fromgt苹果txtapple世界unix
2条回答

grep -f $patterns $filename正是这样。不需要使用python脚本。在

要在Python中查找包含任何给定关键字的行,可以使用regex:

import re
from itertools import ifilter

def fgrep(words, lines):
    # note: allow a partial match e.g., 'b c' matches 'ab cd'
    return ifilter(re.compile("|".join(map(re.escape, words))).search, lines)

要将其转换为命令行脚本:

^{pr2}$

示例:

$ python fgrep.py a b > fruitfound.txt

有更有效的算法,例如,Ago-Corasick algorithm,但是在我的机器上过滤数百万行代码只需要不到一秒钟的时间,而且它可能已经足够好了(grep快了好几倍)。令人惊讶的是,基于Ago-Corasick算法的^{}对于我尝试过的数据来说速度较慢。在

相关问题 更多 >