次のような内容を含むテキスト ファイルがあります。
# 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 の 2 種類のデータがあります。データの各セクションについて、頂点 (1 列目) 対 K_I (5 列目)、および頂点 (1 列目) 対 K_II (6 列目) の折れ線グラフをプロットしたいと思います。
したがって、最終的には、頂点と K_Iの 20 段階のRAW SIFSと 20 の曲線をすべて 1 つのグラフにまとめたいと思います。次に、頂点対 K_IIのRAW SIFSの 20 ステップの別のグラフ。同様に、頂点対 K_Iの 20 ステップのMLS SIFSと 20 の曲線をすべて 1 つのグラフにまとめたいと思います。次に、頂点対 K_IIのMLS SIFSの 20 ステップの別のグラフ。
これまでのところ、元のファイルの 1 つのセクションだけを含む別のテキスト ファイルを作成しました。したがって、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])
セクションごとに個別のファイルを作成せずに、元のファイルのコードを作成するにはどうすればよいですか? # 記号を使用してすべての行をスキップし、プロットする必要がある配列を作成するにはどうすればよいですか?