Python 在文件中有一组起点和终点,我需要提取这两个点之间的数据,然后再次读取另一组点
1.起点和终点都是相同的名称,我给出的数字只是为了在文件中提供不同的数据集Python 在文件中有一组起点和终点,我需要提取这两个点之间的数据,然后再次读取另一组点,python,Python,1.起点和终点都是相同的名称,我给出的数字只是为了在文件中提供不同的数据集 我需要阅读第一组开始点和结束点,做一些代码事务,然后再次阅读第二组开始点和结束点,做一些代码事务。然后继续执行直到完成文件中的所有起点和终点 先谢谢你 代码: 输出: import re def read_file(): file_out = open("file_path.txt", "rb") start_rx = re.compile('.SUBCKT') end_rx = re.com
import re
def read_file():
file_out = open("file_path.txt", "rb")
start_rx = re.compile('.SUBCKT')
end_rx = re.compile('.ENDS')
start = False
output = []
with file_out as data_file:
for line in data_file.readlines():
if re.match(start_rx, line):
start = True
elif re.match(end_rx, line):
start = False
if start :
output.append(line)
print(output)
#print(output[1])
if __name__ == '__main__' :
read_file()
您可以读取起点和终点之间的数据,并将其保存在列表中以执行任何其他工作:
['.SUBCKT t9_invx0p5_znrw2 Z VDD VNW VPW VSS A\n', 'MP1 Z A VDD VNW pfet l=1.4e-08 nf=1 nfin=2 fpitch=4.8e-08 cpp=8.4e-08 ngcon=1 p_la=2e-09 plorient=0\n', 'MN1 Z A VSS VPW nfet l=1.4e-08 nf=1 nfin=2 fpitch=4.8e-08 cpp=8.4e-08 ngcon=1 p_la=2e-09 plorient=0\n', '.SUBCKT t9_invx0p75_znrw2 Z VDD VNW VPW VSS A\n', 'MP1 Z A VDD VNW pfet l=1.4e-08 nf=1 nfin=3 fpitch=4.8e-08 cpp=8.4e-08 ngcon=1 p_la=2e-09 plorient=0\n', 'MN1 Z A VSS VPW nfet l=1.4e-08 nf=1 nfin=3 fpitch=4.8e-08 cpp=8.4e-08 ngcon=1 p_la=2e-09 plorient=0\n']
输出:
the_list = []
dataList = []
with open('putt.txt', "r") as f:
isLine = False
for line in f:
if "END point" in line:
print(the_list)
# do whatever you want with these lines
dataList.append(the_list)
the_list = []
isLine = False
if "START point" in line:
isLine = True
if "START point" not in line and isLine:
if(len(line)>0):
the_list.append(line)
['data 1 \n', 'data 2\n', 'data 3\n', 'data 4\n']
['data 1 \n', 'data 2\n', 'data 3\n', 'data 4\n']
['data 1 \n', 'data 2\n', 'data 3\n', 'data 4\n']
['data 1 \n', 'data 2\n', 'data 3\n', 'data 4\n']
print(dataList[0])
输出:
the_list = []
dataList = []
with open('putt.txt', "r") as f:
isLine = False
for line in f:
if "END point" in line:
print(the_list)
# do whatever you want with these lines
dataList.append(the_list)
the_list = []
isLine = False
if "START point" in line:
isLine = True
if "START point" not in line and isLine:
if(len(line)>0):
the_list.append(line)
['data 1 \n', 'data 2\n', 'data 3\n', 'data 4\n']
['data 1 \n', 'data 2\n', 'data 3\n', 'data 4\n']
['data 1 \n', 'data 2\n', 'data 3\n', 'data 4\n']
['data 1 \n', 'data 2\n', 'data 3\n', 'data 4\n']
print(dataList[0])
请阅读,特别是和。还有。最后,别忘了。您好,谢谢您的回答。我能够得到输出,但问题是如果我打印(列表[0]),答案只是数据1数据1数据1数据1数据1数据1我需要打印它(列表[0]),答案是['data 1\n','data 2\n','data 3\n','data 4\n']