【发布时间】:2021-06-13 06:57:18
【问题描述】:
我有一个看起来像这样的数据文件:
# GROMACS
#
@ title "GROMACS Energies"
@ xaxis label "Time (ps)"
@ yaxis label "(K)"
@TYPE xy
@ view 0.15, 0.15, 0.75, 0.85
@ legend on
@ legend box on
@ legend loctype view
@ legend 0.78, 0.8
@ legend length 2
@ s0 legend "Temperature"
0.000000 301.204895
1.000000 299.083496
2.000000 293.100250
3.000000 301.090637
4.000000 293.024811
5.000000 297.068481
6.000000 298.065125
7.000000 300.354370
8.000000 304.322693
9.000000 297.093170
10.000000 297.186615
11.000000 298.112732
12.000000 293.396545
13.000000 295.803162
14.000000 293.432037
15.000000 298.306702
16.000000 297.545715
17.000000 294.283875
18.000000 295.527771
19.000000 297.193665
我想要做的是提取@ s0 legend "Temperature" 表达式下方的所有数据点并将其放入数据帧中,或者只是一个可以被python轻松访问的数据结构。我目前正在使用 awk 和 python 的组合来执行此操作。
我先做
awk '/@ s0 legend/{flag=1; next} flag' temp.xvg > temp.dat
获取只有两列数据的 temp.dat 文件。然后,我使用 panda read_csv 将数据作为列来执行我的分析。
我想切断将临时文件写入磁盘以将信息发送到python的中间人。这可能吗?我可以通过简单的 python 脚本提取数据列吗?
【问题讨论】:
-
为什么投反对票?
标签: python awk text-processing