我在读一个分块的文件时遇到了一些困难,在每个块中获取一些有选择的数据时遇到了困难:
以下是我的文件内容:
DATA.txt
#-----FILE-----STARTS-----HERE--#
#--COMMENTS CAN BE ADDED HERE--#
BLOCK IMPULSE DATE 01-JAN-2010 6 DEHDUESO203028DJE \
SEQUENCE=ai=0:at=221:ae=3:lu=100:lo=NNU:ei=1021055:lr=1: \
USERID=ID=291821 NO_USERS=3 GROUP=ONE id_info=1021055 \
CREATION_DATE=27-JUNE-2013 SN=1021055 KEY ="22WS \
DE34 43RE ED54 GT65 HY67 AQ12 ES23 54CD 87BG 98VC \
4325 BG56"
BLOCK PASSION DATE 01-JAN-2010 6 DEHDUESO203028DJE \
SEQUENCE=ai=0:at=221:ae=3:lu=100:lo=NNU:ei=324356:lr=1: \
USERID=ID=291821 NO_USERS=1 GROUP=ONE id_info=324356 \
CREATION_DATE=27-MAY-2012 SN=324356 KEY ="22WS \
DE34 43RE 342E WSEW T54R HY67 TFRT 4ER4 WE23 XS21 \
CD32 12QW"
BLOCK VICTOR DATE 01-JAN-2010 6 DEHDUESO203028DJE \
SEQUENCE=ai=0:at=221:ae=3:lu=100:lo=NNU:ei=324356:lr=1: \
USERID=ID=291821 NO_USERS=5 GROUP=ONE id_info=324356 \
CREATION_DATE=27-MAY-2012 SN=324356 KEY ="22WS \
DE34 43RE 342E WSEW T54R HY67 TFRT 4ER4 WE23 XS21 \
CD32 12QW"
#--BLOCK--ENDS--HERE#
#--NEW--BLOCKS--CAN--BE--appendED--HERE--#
我只对区块名称,没有用户和每个区块的id信息感兴趣。 这三个数据将被保存到数据结构(比如dict),该结构进一步存储在列表中:
^{pr2}$任何其他可以保存信息的数据结构也可以。在
到目前为止,我尝试通过逐行阅读来获取块名:
fOpen = open('DATA.txt')
unique =[]
for row in fOpen:
if "BLOCK" in row:
unique.append(row.split()[1])
print unique
我在考虑正则表达式方法,但不知道从哪里开始。 任何帮助都可以谢谢。同时我也在尝试,会更新如果我得到什么。请帮忙。在
可以使用groupy查找每个块,使用regex提取信息并将值放入dicts中:
输出:
^{pr2}$或者不使用groupby,因为您的文件遵循一种格式,我们只需要提取块行后面的第二行:
^{3}$输出:
要提取可以迭代的值:
输出:
如果您想要dict的dict并从1-n访问每个部分,可以使用from 1-n as tke key将其存储为嵌套dict:
输出:
'num_blocks'
将确切地告诉您提取了多少个块。在相关问题 更多 >
编程相关推荐