Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在已知设定点的文本文件中查找信息_Python_Python 3.x - Fatal编程技术网

Python 在已知设定点的文本文件中查找信息

Python 在已知设定点的文本文件中查找信息,python,python-3.x,Python,Python 3.x,因此,我知道文本文件中的设置点和,我需要使用它们来查找它们之间的某些信息,这些信息将被使用和打印。我目前在另一个函数中有.readlines(),该函数在新函数中用于查找信息。您可以尝试以下操作: flag = False info = [] # your desired information will be appended as a string in list with open(your_file, 'r') as file: for line in file.readlines

因此,我知道文本文件中的设置点
,我需要使用它们来查找它们之间的某些信息,这些信息将被使用和打印。我目前在另一个函数中有
.readlines()
,该函数在新函数中用于查找信息。

您可以尝试以下操作:

flag = False
info = [] # your desired information will be appended as a string in list
with open(your_file, 'r') as file:
   for line in file.readlines():
       if '<start point>' in line: # Pointer reached the start point
           flag = True
       if '<end point>' in line: # Pointer reached the end point
           flag = False
       if flag:  # this line is between the start point and endpoint
           info.append(line)

>> info
['Number=12', 'Word=Hello']
flag=False
info=[]#您所需的信息将作为字符串附加到列表中
打开(您的_文件,'r')作为文件:
对于文件.readlines()中的行:
如果行中有“”:#指针已到达起点
flag=True
如果行中有“”:#指针已到达终点
flag=False
if标志:#此线位于起点和终点之间
信息追加(行)
>>信息
['Number=12','Word=Hello']

这似乎是正则表达式的工作。如果您还没有遇到正则表达式,那么它们是一个非常强大的工具,基本上可以用来搜索文本字符串中的特定模式

例如,正则表达式(或简称regex)
Number=\d+
将在文本文档中找到后跟任意数量数字字符的任何行。正则表达式
Word=\w+
将匹配任何以
Word=
开头然后后跟任意数量字母的字符串

在python中,可以通过使用正则表达式。有关在python中使用正则表达式的详细介绍,请参阅《用python自动化枯燥的东西》一书。测试正则表达式非常好

在这种情况下,您可以执行以下操作:

重新导入
您的_文件=“test.txt”
打开(您的_文件,'r')作为文件:
file_contents=file.read()
number\u regex=re.compile(r'number=\d+)
number\u matches=re.findall(number\u regex,文件内容)
打印(匹配的数量)
>>>['Number=12']

这将返回一个列表,其中包含与数字regex的所有匹配项。然后,您可以对单词匹配执行相同的操作

你能发布你尝试过的代码和问题是什么吗?读这个