我一直在努力为下面的文本文件格式工作。 我的总体目标是在整个文本文件中提取其中一个变量名的值。例如,我需要B行和D行的所有值。然后把它们放到一个普通的numpy数组中运行计算。在
数据文件如下所示:
[SECTION1a]
[a] 1424457484310
[b] 5313402937
[c] 873348378938
[d] 882992596992
[e] 14957596088
[SECTION1b]
243 62 184 145 250 180 106 208 248 87 186 137 127 204 18 142 37 67 36 72 48 204 255 30 243 78 44 121 112 139 76 71 131 50 118 10 42 8 67 4 98 110 37 5 208 104 56 55 225 56 0 102 0 21 0 156 0 174 255 171 0 42 0 233 0 50 0 254 0 245 255 110
[END SECTION1]
[SECTION2a]
[a] 1424457484310
[b] 5313402937
[c] 873348378938
[d] 882992596992
[e] 14957596088
[SECTION2b]
243 62 184 145 250 180 106 208 248 87 186 137 127 204 18 142 37 67 36 72 48 204 255 30 243 78 44 121 112 139 76 71 131 50 118 10 42 8 67 4 98 110 37 5 208 104 56 55 225 56 0 102 0 21 0 156 0 174 255 171 0 42 0 233 0 50 0 254 0 245 255 110
[END SECTION2]
这种模式持续到N个部分。在
目前,我阅读了该文件并将其分为两列:
^{pr2}$然后我将使用where,找到我想要的值的索引,然后将这些值组成一个新的数组:
arr_index = np.where(col1_data == '[b]')
new_array = col2_data[arr_index]
问题是,由于奇怪的文件格式,我最终得到了两个不同大小的数组,因此很明显数组中的数据无法正确匹配正确的变量名。在
我尝试过其他一些方法,但由于奇怪的文本文件格式以及如何将其读入python而陷入困境。在
我不确定我是否应该坚持这条路,如果是的话,如何解决问题,或者,尝试一个完全不同的方法。在
提前谢谢!在
将数据排序到
OrdedDict()
字典的层次结构中的一个可能的解决方案:注意,如果使用现有的解析工具(例如,Parsley),则可以获得更健壮的代码。在
要从所有部分检索
^{pr2}$'[c]'
,请执行以下操作:或者你可以浏览整个字典:
下面应该这样做。它使用正在运行的存储(
tally
)来处理丢失的值,然后在到达结束标记时写出状态。在注意,结果
dict
定义中的任何键都将出现在输出中。在相关问题 更多 >
编程相关推荐