Python 在文件中有一组起点和终点,我需要提取这两个点之间的数据,然后再次读取另一组点

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

1.起点和终点都是相同的名称,我给出的数字只是为了在文件中提供不同的数据集

  • 我需要阅读第一组开始点和结束点,做一些代码事务,然后再次阅读第二组开始点和结束点,做一些代码事务。然后继续执行直到完成文件中的所有起点和终点
  • 先谢谢你

    代码:

    输出:

    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']