在python中搜索文本文件中的字符串

时间:2017-08-17 19:41:50

标签: python function parsing wildcard

我正在使用Python搜索大型文本文件中的某个字符串,字符串下面是我感兴趣的数据分析。

none

from tastypie.resources import ModelResource from swtr.models import Com class ComResource(ModelResource): class Meta: queryset = Com.objects.all() # __^ resource_name = 'com' object_class = None # _____________^ 变量中,def my_function(filename, variable2, variable3, variable4): array1 = [] with open(filename) as a: special_string = str('info %d info =*' %variable3) for line in a: if special_string == array1: array1 = [next(a) for i in range(9)] line = next(a) break elif special_string != c: c = line.strip() 之后的任何内容都可能发生变化,因此我尝试将通配符运算符放在上面。我可以让函数运行的唯一方法是,如果我输入我要搜索的确切字符串,包括等号后的所有内容,如下所示:

special_string

如何将通配符运算符分配给字符串的其余部分以使我的函数更健壮?

2 个答案:

答案 0 :(得分:1)

你有没有想过用这样的东西? 根据您的意见,我假设如下:

variable3 = 100000
special_string = str('info         %d       info = more_stuff' %variable3)

import re
pattern = re.compile('(info\s*\d+\s*info\s=)(.*)')
output = pattern.findall(special_string)
print(output[0][1])

哪会回来:

more_stuff

答案 1 :(得分:1)

如果你的特殊字符串总是出现在一行的开头,那么你可以使用以下检查(special_string 的地方{{ 1}}在最后):

*

否则,请查看module re in the standard library以使用正则表达式。