我有一个文件
section2
Number of configurations:2
Configuration1
Number Of Pw:1
PW1
Frame_Type: E1 Unframed
Line_Code: AMI
Psn_Type:UDP/IPv4
Pw_Type: SAToP
Oam_Status: Enable
Prevent_PW_Broadcast: Enable
Multiplexing_Mode: Source
Out_Label: 1
In_Label: 8190
Payload_Size_Bytes: 128
Jitter_Buffer_Size: 10000
VLAN Tagging:Enable
VLAN ID:100
VLAN PRIORITY:1
file_name: MITOPExTx.img
server_ip: 192.168.205.23
software_version: 4.0(0.5)
EndPW
EndConfiguration
Configuration2
PW1
Frame_Type: E1 Unframed
Line_Code: AMI
Psn_Type: MEF
Pw_Type: SAToP
Oam_Status: Disable
Prevent_PW_Broadcast: Disable
Multiplexing_Mode: Destination
Out_Label: 16
In_Label: 1
Payload_Size_Bytes: 40
Jitter_Buffer_Size: 20000
EndPW
EndConfiguration
从这个文件首先我需要读取配置1,然后根据我需要reed Pw1然后在那之下我需要读取配置。我应该阅读的时间直到Endconfiguration。
完成配置后,我需要阅读配置2和pw。可以有人帮我这个
答案 0 :(得分:0)
不确定为什么需要嵌套for循环:
test_file = open("Section{}Configurations.txt".format(qvs_section))
read_test_file = test_file.readlines()
count = 1
for line in read_test_file:
if line.strip() == "PW1":
print "Config{} Started".format(count)
continue
if line.strip() == "EndPW":
print "Config{} Finished".format(count)
count += 1
continue
print line.strip()
或使用re
import re
config_file=open("Section{}Configurations.txt".format(qvs_section))
config_file_string=config_file.read()
number_of_configs = int((re.findall("Number of configurations:(.*?)\n", config_file_string))[0].strip())
for i in range(number_of_configs):
print "CONFIGURATION:{}".format(i+1)
re_pattern="Configuration{}(.*?)EndConfiguration".format(i+1)
config = re.findall(re_pattern, config_file_string, re.DOTALL)
for line in config[0].split("\n"):
print "\t{}".format(line.strip())