例如我有这样一块内容,这块内容会重复出现很多次,都存在一个CAP.txt档案内:
$ add on: Beam Spot - BEAMSPOT01
$ data: MeasuredSpotFluenceX
$
%VERSION 02
%DATE 30-08-2021
%BMTY PRO
%TYPE MeasuredSpotFluenceX
%ENERGY 070.00
%NET 000.00
%ZPOS -189.00
<-149.0 +000.0 +000.0 +000.000>
<-148.5 +000.0 +000.0 +000.000>
<-148.0 +000.0 +000.0 +000.000>
$ENOM
$STOM
其中前三行和后两行有$符号的,是每一块的首尾都不会改变的内容。
请问有什么指令能够读取首尾字符串以内的内容,并且重复读取呢?以及有什么指令可以每读取一次就存在一个工作表中,最后汇出成一个Excel档案呢?
求指点!
利用正则表达式提取字符,可参考以下代码:
import re
a = '''
$ add on: Beam Spot - BEAMSPOT01
$ data: MeasuredSpotFluenceX
$
%VERSION 02
%DATE 30-08-2021
%BMTY PRO
%TYPE MeasuredSpotFluenceX
%ENERGY 070.00
%NET 000.00
%ZPOS -189.00
<-149.0 +000.0 +000.0 +000.000>
<-148.5 +000.0 +000.0 +000.000>
<-148.0 +000.0 +000.0 +000.000>
$ENOM
$STOM
'''
out = re.findall(r'(?<=\$ add on: Beam Spot - BEAMSPOT01\s\$ data: MeasuredSpotFluenceX\s\$\s)(?:.*\s)*(?=\$ENOM\s\$STOM)',a)
print(out)
for i in out:
print(i)