我有一个包含以下内容的文本文件:
# Comment
# Comment
# Comment
# Comment
# Comment
Comment
# Comment
**#Raw SIFs at Crack Propagation Step: 0**
# Vertex, X, Y, Z, K_I, K_II,
0 , 2.100000e+00 , 2.000000e+00 , -1.000000e-04 , 0.000000e+00 , 0.000000e+00 ,
1 , 2.100000e+00 , 2.000000e+00 , 1.699733e-01 , 8.727065e+00 , -8.696262e-04 ,
2 , 2.100000e+00 , 2.000000e+00 , 3.367067e-01 , 8.907810e+00 , -2.548819e-04 ,
**# MLS SIFs at Crack Propagation Step: 0**
# MLS approximation:
# Sample, t, NA, NA, K_I, K_II,
# Crack front stretch: 0
0 , 0.000000e+00 , 0.000000e+00 , 0.000000e+00 , 8.446880e+00 , -1.360875e-03 ,
1 , 5.670333e-02 , 0.000000e+00 , 0.000000e+00 , 8.554168e+00 , -1.156931e-03 ,
2 , 1.134067e-01 , 0.000000e+00 , 0.000000e+00 , 8.648241e+00 , -9.755573e-04 ,
# more comments
more comments
# more comments
**# Raw SIFs at Crack Propagation Step: 1**
# Vertex, X, Y, Z, K_I, K_II,
0 , 2.186139e+00 , 2.000000e+00 , -1.688418e-03 , 0.000000e+00 , 0.000000e+00 ,
1 , 2.192003e+00 , 2.000000e+00 , 1.646902e-01 , 9.571022e+00 , 4.770358e-03 ,
2 , 2.196234e+00 , 2.000000e+00 , 3.319183e-01 , 9.693934e+00 , -9.634989e-03 ,
**# MLS SIFs at Crack Propagation Step: 1**
# MLS approximation:
# Sample, t, NA, NA, K_I, K_II,
# Crack front stretch: 0
0 , 0.000000e+00 , 0.000000e+00 , 0.000000e+00 , 9.402031e+00 , 2.097959e-02 ,
1 , 5.546786e-02 , 0.000000e+00 , 0.000000e+00 , 9.467541e+00 , 1.443546e-02 ,
2 , 1.109357e-01 , 0.000000e+00 , 0.000000e+00 , 9.525021e+00 , 8.554051e-03 ,
如您所见,没有# 符号的行包含我要绘制的数据。我只向您展示了步骤 0 和步骤 1 的一小部分,但该文件中大约有 20 个步骤。并且在每个步骤中,有两种类型的数据:RAW SIFS 和 MLS SIFS。对于每个数据部分,我想绘制一个折线图:顶点(第 1 列)与 K_I(第 5 列),以及顶点(第 1 列)与 K_II(第 6 列)
所以,最后我想要顶点与 K_I 的 20个RAW SIFS步骤,其中 20 条曲线都在一个图中。然后,另一个顶点与 K_II的RAW SIFS的 20 个步骤的图表。同样,我希望MLS SIFS的 20 个步骤用于顶点与 K_I 的 20 条曲线都在一个图中。然后,另一个关于顶点与 K_II的MLS SIFS的 20 个步骤的图表。
到目前为止,我创建了一个单独的文本文件,其中只有原始文件的一部分。因此,对于Crack Propagation Step: 0部分的 Raw SIF,我编写的代码使用 numpy.loadtxt() 来读取文件:
import numpy
with open("numfile.txt") as RawStep0:
Vertex, K_I, K_II = numpy.loadtxt(RawStep0, usecols = (0, 4, 5), dtype = float, delimiter=" , ",
skiprows = 2, unpack = True)
我的输出--->
顶点 = 数组([ 0., 1., 2.])
K_I = 数组([0., 8.727065, 8.90781])
如何在无需为每个部分创建单独文件的情况下为原始文件编写代码?如何使用 # 符号跳过所有这些行并创建我需要绘制的数组?