我正在使用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
如何将通配符运算符分配给字符串的其余部分以使我的函数更健壮?
答案 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以使用正则表达式。