aab*_*baa 1 python split list enumerate python-2.7
我有一个包含数千行的文件,在文件中有一些行,如:
Line 115463: 08:59:25.106 08:59:24.992877 ASDF_IIS_CFGDB GenMod Ta-SNS__GENERATED_EVENTS (Event2f, DIR = 13) rrc_UlUtranMsg.c (../../../HEDGE/UL3/ASDF/UtranMsg/Uplink/Code/Src) 987
Line 236362: 08:59:28.647 08:59:28.597827 ASDF_IIS_CFGDB GenMod Ta-SNS__GENERATED_EVENTS (Eventab, DIR = 1) rrc_UlUtranMsg.c (../../../HEDGE/UL3/ASDF/UtranMsg/Uplink/Code/Src) 934
Line 324964: 08:59:40.456 08:59:40.403644 ASDF_IIS_CFGDB GenMod Ta-SNS__GENERATED_EVENTS (Eventac, DIR = 1) rrc_UlUtranMsg.c (../../../HEDGE/UL3/ASDF/UtranMsg/Uplink/Code/Src) 934
Line 341172: 08:59:40.659 08:59:40.616565 ASDF_IIS_CFGDB GenMod Ta-SNS__GENERATED_EVENTS (Eventfb, DIR = 13) rrc_UlUtranMsg.c (../../../HEDGE/UL3/ASDF/UtranMsg/Uplink/Code/Src) 987
Line 373186: 08:59:41.174 08:59:41.104755 ASDF_IIS_CFGDB GenMod Ta-SNS__GENERATED_EVENTS (Event2f, DIR = 1) rrc_UlUtranMsg.c (../../../HEDGE/UL3/ASDF/UtranMsg/Uplink/Code/Src) 934
Line 480217: 08:59:44.481 08:59:44.389453 ASDF_IIS_CFGDB GenMod Ta-SNS__GENERATED_EVENTS (Eventx1, DIR = 1) rrc_UlUtranMsg.c (../../../HEDGE/UL3/ASDF/UtranMsg/Uplink/Code/Src) 934
Line 505424: 08:59:44.777 08:59:44.701709 ASDF_IIS_CFGDB GenMod Ta-SNS__GENERATED_EVENTS (Event1a, DIR = 1) rrc_UlUtranMsg.c (../../../HEDGE/UL3/ASDF/UtranMsg/Uplink/Code/Src) 934
Run Code Online (Sandbox Code Playgroud)
我只需要提取子字符串
'1A'
从
'SNS__GENERATED_EVENTS(Event1a,DIR = 1)'
等等.所以,基本上,'(事件'后面的两个字符)
我需要将它们存储在列表中或我可以使用它们的其他位置.
我怎样才能做到这一点?
到目前为止,我已经尝试了以下代码,但它给了我一些混合的值:
events = []
for line in input_txt_file:
if "Ta-SNS__GENERATED_EVENTS " not in line: continue
parts = line.split('Event')
event_temp = [0]
for i,part in enumerate(parts):
if part.endswith("Ta-SNS__GENERATED_EVENTS ("): event_temp[0] = parts[i+1].split(None,1)[0].split(',',2)[0]
events.append(event_temp)
print events
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
[[0],[0],['2f'],['2f'],['ab'],['ab'],[0],[0],['ac'],['ac '],['fb'],.......]
如果线路位置始终固定,Wayne的答案是最有效的.如果位置可能有所不同,这是使用正则表达式的一个不错的情况:
import re
events = []
for line in input_txt_file:
match = re.search(r'SNS__GENERATED_EVENTS.*?Event(..)', line)
if match:
events.append(match.group(1))
Run Code Online (Sandbox Code Playgroud)
这会搜索每一行SNS__GENERATED_EVENTS,然后搜索一些字符,然后Event再搜索另外两个字符,并抓取这两个字符.
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |