Python 3.x 如何以更短的方式创建具有独立列的新csv文件

Python 3.x 如何以更短的方式创建具有独立列的新csv文件,python-3.x,function,csv,Python 3.x,Function,Csv,我创建了一个函数,可以进行一些计算,并设法以正确的方式在csv文件中获取正确的数据。然而,我的代码非常长,在阅读关于这个主题的其他线程时,我没有找到一个简单的方法来缩短它。我的代码如下: def modelc(x,Mblood,Mliver,dt): createFile = open('Time.csv', 'w') createFile.write('t'+'\n') createFile.close() createFile = open('Blood.csv', 'w') create

我创建了一个函数,可以进行一些计算,并设法以正确的方式在csv文件中获取正确的数据。然而,我的代码非常长,在阅读关于这个主题的其他线程时,我没有找到一个简单的方法来缩短它。我的代码如下:

def modelc(x,Mblood,Mliver,dt):
createFile = open('Time.csv', 'w')
createFile.write('t'+'\n')
createFile.close()

createFile = open('Blood.csv', 'w')
createFile.write('Mblood'+'\n')
createFile.close()

createFile = open('Liver.csv', 'w')
createFile.write('Mliver'+'\n')
createFile.close()

while x<24:
    Mblood = Mblood-Mblood*0.5*dt
    Mliver = Mliver+Mblood*0.5*dt
    x+=dt

    appendFile = open('Time.csv','a')
    appendFile.write('%f'%x+'\n')
    appendFile.close()

    appendFile = open('Blood.csv','a')
    appendFile.write('%f'%Mblood+'\n')
    appendFile.close()

    appendFile = open('Liver.csv','a')
    appendFile.write('%f'%Mliver+'\n')
    appendFile.close()

    csv_input = pandas.read_csv('Time.csv')
    csv_blood = pandas.read_csv('Blood.csv')
    csv_liver = pandas.read_csv('Liver.csv')
    csv_input['MassBlood'] = csv_blood['Mblood']
    csv_input['MassLiver'] = csv_liver['Mliver']
    csv_input.to_csv('Modeloutput.csv', index=False)

modelc(0,20,0,0.001)
def modelc(x,Mblood,Mliver,dt):
createFile=open('Time.csv','w')
createFile.write('t'+'\n')
createFile.close()
createFile=open('Blood.csv','w')
createFile.write('Mblood'+'\n')
createFile.close()
createFile=open('Liver.csv','w')
createFile.write('Mliver'+'\n')
createFile.close()

而x由于使用HD内存,打开和关闭需要很长时间。而是让文件保持打开状态(在辅助内存中),执行所有操作,最后关闭并保存

   def modelc(x,Mblood,Mliver,dt):
       createFile = open('Liver.csv', 'wt')
       createFile.write("t,MassBlood,MassLiver")
       for i in range(24):
          Mblood = Mblood-Mblood*0.5*dt
          Mliver = Mliver+Mblood*0.5*dt
          x+=dt
          createFile.write(str(x)+","+str(Mblood)+","+str(Mliver))
    createFile.close()

你已经使用熊猫了。您可以直接将值附加到数据框中,并像在最后一行中那样保存。