在文本文件中搜索 python 中的字符串
Searching text file for string in python
我正在使用 Python 在一个大文本文件中搜索某个字符串,该字符串下方是我有兴趣对其进行数据分析的数据。
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
变量中,info =
之后的内容可能会有所不同,因此我尝试放置一个通配符运算符,如上所示。我可以将函数设置为 运行 的唯一方法是,如果我输入要搜索的确切字符串,包括等号后的所有内容,如下所示:
special_string = str('info %d info = more_stuff' %variable3)
如何为字符串的其余部分分配通配符以使我的函数更健壮?
你有没有想过使用这样的东西?
根据您的意见,我假设如下:
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])
哪个 return:
more_stuff
如果您的特殊字符串总是出现在一行的开头,那么您可以使用下面的检查(其中special_string
不会 末尾有 *
):
line.startswith(special_string)
否则,请务必查看 module re
in the standard library 以了解如何使用正则表达式。
我正在使用 Python 在一个大文本文件中搜索某个字符串,该字符串下方是我有兴趣对其进行数据分析的数据。
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
变量中,info =
之后的内容可能会有所不同,因此我尝试放置一个通配符运算符,如上所示。我可以将函数设置为 运行 的唯一方法是,如果我输入要搜索的确切字符串,包括等号后的所有内容,如下所示:
special_string = str('info %d info = more_stuff' %variable3)
如何为字符串的其余部分分配通配符以使我的函数更健壮?
你有没有想过使用这样的东西? 根据您的意见,我假设如下:
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])
哪个 return:
more_stuff
如果您的特殊字符串总是出现在一行的开头,那么您可以使用下面的检查(其中special_string
不会 末尾有 *
):
line.startswith(special_string)
否则,请务必查看 module re
in the standard library 以了解如何使用正则表达式。