在运行缓慢的python中重新搜索

2024-09-28 21:52:48 发布

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

我有以下代码:

#CODEA
with open(logfile) as input_data:
    mylist = []
    rangelines = 0
    BeginSearchDVar = CTFBegin
    EndinSearchDVar = CTFEndin
    for line in input_data:
        if str(BeginSearchDVar) in str(line[0:30]):
            ......

过去是:

#CODEB
with open(logfile) as input_data:
    mylist = []
    rangelines = 0
    BeginSearchDVar = CTFBegin
    EndinSearchDVar = CTFEndin
    for line in input_data:
        if re.search(BeginSearchDVar) in line[0:30]:
            ......

对我来说,CODEB工作得很好,但速度很慢。所以,我用了CODEA

问题是,CODEA似乎不能很好地处理简单的正则表达式

例如,假设第[0:30]行的内容是:

“你是谁?你好,我叫邦德。詹姆斯·邦德

如果BeginSearchDVar变量中的搜索模式包含字符串“Who are.*Bond.*James.Bond”,CODEA将找不到它。CODEA不喜欢“这个”

我怎样才能有效地解决这个问题?我不能也不想使用CODEB,因为它与CODEA相比太慢了


Tags: ininputdataaswithlineopenlogfile