*******************************************
START point 1
data 1
data 2
data 3
data 4
END point 1
*******************************************
START point 2
data 1
data 2
data 3
data 4
END point 2
*******************************************
*******************************************
START point 3
data 1
data 2
data 3
data 4
END point 3
*******************************************
*******************************************
START point 4
data 1
data 2
data 3
data 4
END point 4
*******************************************
1.起点和终点是我给出的数字的所有名称,仅提供文件中的数据集。
- 我需要读取第一组起点和终点进行一些代码事务,然后再次读取第二组起始点和终点并进行一些代码事务。并继续doinf取消直到完成文件中的所有起点和终点。
预先感谢您
代码:
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 An', '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=0n', '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=0n', '.SUBCKT t9_invx0p75_znrw2 Z VDD VNW VPW VSS An', '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=0n', '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=0n']
您可以在开始点和终点之间读取数据并将其保存在列表中以进行任何其他工作:
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 2n', 'data 3n', 'data 4n']
['data 1 n', 'data 2n', 'data 3n', 'data 4n']
['data 1 n', 'data 2n', 'data 3n', 'data 4n']
['data 1 n', 'data 2n', 'data 3n', 'data 4n']
print(dataList[0])
输出:
['data 1 n', 'data 2n', 'data 3n', 'data 4n']