基本上我有一个txt文件,它是fortran模型的输出。输出有点像这样:
Title:Model
Temp(K) Ionic str Rho Phi H2O Ice ...
273.15 4 1.003 1.21 1000 0.00
Species Ini Conc Final Conc Act ....
H 0.0 0.12032 0.59
NH4 3.0 3.00 0.43
Cl 1.0 1.00 0.47
...
Title:Model
Temp(K) Ionic str Rho Phi H2O Ice ...
273.15 4 1.003 1.21 1000 0.00
Species Ini Conc Final Conc Act ....
H 0.0 0.12032 0.59
NH4 3.0 3.00 0.43
Cl 1.0 1.00 0.47
...
每一步都会添加另一个像上面那样的集合,所以最终我会有一个包含3000多个步骤的txt文件。你知道吗
所以我想回忆一下每一步的温度。我试图写一些东西来索引所有出现“Temp(K)”的点,然后在索引中加1来得到实际温度的位置。你知道吗
我的代码如下所示:
import numpy as np
import matplotlib.pyplot as plt
main=[]
main2=[]
count=0
with open('FrOut.txt', 'r') as f:
data=f.readlines()
for line in data:
main.append(line.split(','))
for value in main:
for x in value:
main2.append(x.split())
for value in main2:
for x in value:
if x=='Temp(K)':count+=1
所以很明显这不是最优雅的方式,但我对python非常熟悉。那么,如果列表(main2)的第一个值=='Temp(K)',我如何在列表(main2)中找到该列表的索引呢?你知道吗
注意。我用np和matplot来绘制之后的数据。你知道吗
将文件读入列表。你知道吗
获取开始温度的行数(使用列表理解,因为它很快):
获取温度,再次列出一个列表。你知道吗
如果需要,您甚至可以将其合并为一个列表:
IPython中的一个例子:
这个怎么样:
这可以使用python的enumerate()函数来完成。你知道吗
下面是一个提取索引的示例。(还有,只是为了好玩,温度也一样!)你知道吗
相关问题 更多 >
编程相关推荐