我写了一个脚本,可以根据文件的输入来计算给定大气的反应速率。脚本中工作正常的部分-我遇到的问题是输出
我尝试编写的输出如下所示:
[4.0645563275808397e+40, 2.132787340925467e+34, 1.1095439676449723e+34, 8.8519070848594178e+30, 5.712962894343884e+29, 8.59176710723335e+25, 2.2776609537205616e+27, 1.0754560423907579e+29, 1.207315366535562e+32, 3.704635984045113e+37, 3.6601067774637497e+36, 2.9774080573246763e+41, 1.6013846123116079e+42, 68756936.415690869, 37101276694.104965, 1261680029767.3533,...]
共有560个反应速率
我一直在尝试使用csv.writer将此文件写入csv文件-它可以而且确实可以这样做。问题是csv.writer没有创建一个560行的列来存储输出,而是一行生成560列。如何让它以我想要的格式编写输出?我已经试过numpy.transpose了,但没有任何效果
以下是相关代码:
rate_list=[]
for i in range (1,560):
A_no=int(Ar.iloc[i]) #index number for first reactant
B_no=int(Br.iloc[i]) #index number for second reactant
k=mydict['variable']['k'][i][29] #Grabs reaction rate constant
A_ymix=mydict['variable']['ymix'][29][A_no] #Grabs abundance for first reactant
B_ymix=mydict['variable']['ymix'][29][B_no] #Grabs abundance for second reactant
rate=A_ymix*B_ymix*N*k
rate_list.append(rate)
with open('reaction rate list.csv','w') as output:
writer= csv.writer(output, delimiter=',')
writer.writerows(rate_list)
如有任何建议,我们将不胜感激
谢谢
我不熟悉csv writer,但如果您想在一行中使用它,只使用标准的文件编写器并不困难
要使每个值都成为一行,请附加一个列表,其中包含单个项而不是该项。另外,用
newline=''
参数打开文件没有关于ar、BR、mydict等的详细信息,因此我创建了一个包含大量数字的moc列表,然后将其写入csv文件。 希望这有帮助
下面创建大小为560的大/指数数字的速率列表
然后我们打开输出文件写入并遍历rate\ list的索引,将每个元素写入新行。你的情况可以采用这种方法
结果 这将产生一个560行的单列输出文件
相关问题 更多 >
编程相关推荐