![](/img/trans.png)
[英]How do I get my python output into a csv or excel file?
[英]Python- how do I get output written into a single column of a CSV file?
我编写了一个脚本,该脚本将根据文件中的输入来计算给定气氛的反应速率。 脚本中可以正常工作的部分-输出我遇到的问题。
我尝试编写的输出如下所示:
[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)
任何和所有建议,将不胜感激!
谢谢!
没有关于ar,BR,mydict等的详细信息,因此我创建了一个包含大量数字的moc列表,然后将其写入到csv文件中。 希望这可以帮助。
以下创建大小为560的大/指数数的费率列表。
import random
rate_list= [str(random.randint(10000000000,999999999999)) for _ in xrange(1,561)]
>>> rate_list
['77041105830', '92494887483', ..........., '749368445154', '435710931425']
然后,我们打开输出文件进行写入,并遍历rate_list的索引以将每个元素写入新行。 这可以根据您的情况采用。
with open('reaction rate list.csv','w') as output:
for i in range(0,560):
output.write(rate_list[i])
output.write('\n')
结果将结果转换为560行的单列输出文件。
我不熟悉csv编写器,但是如果您只想一行就可以使用标准的文件编写器
rate_list=[]
out='['
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
out= out + rate + ','
out = out.replace(out[len(out) - 1], ']')
f = open('list.csv', 'w+')
open.write(out)
f.close()
要使每个值都为一行,请在列表后面附加一个项目而不是一个项目。 另外,使用newline=''
参数打开文件。
...
rate_list.append([rate])
with open('reaction rate list.csv','w') as output:
writer= csv.writer(output, delimiter=',', newline='')
writer.writerows(rate_list)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.