2016-05-22 6 views
0

Ich habe 3-Listen, a, b, c, wie kann ich sie in eine Textdatei im Format der Tabelle (Zeilen und Spalten) wie folgt schreiben:Listen von Daten in eine Textdatei Spalte für Spalte Schreiben

time(s) voltage(V) current(A) 
     0 0000000000  101101010 
     0.0005 0000110001 101011000 
     0.001 0001100000  101011000 

ich habe zu schreiben versucht:

powdata=open("powdata.txt","w") 
for i in a: 
    powdata.write("%s\n"%i) 
for j in b: 
    powdata.write("%s\n"%j) 

powdata.close() 

diese Art von Codes Leider schreibt nur Daten in der Textdatei vertikal meine ich die vorgeschlagene Tabelle nicht wie

Antwort

0

Sie könnten verschachteln nur Pandas benutzen? z.B.

import pandas as pd 
df = pd.DataFrame({'time(s)' : [0, 0.005, 0.001], 'voltage(V)' : ['0000000000','0000110001','0001100000'], 'current(A)' : ['101101010','101011000','101011000']}) 

oder, wenn

a = [0, 0.005, 0.001] 
b = ['0000000000','0000110001','0001100000'] 
c = ['101101010','101011000','101011000'] 

Sie gerade tun könnte

df = pd.DataFrame({'time(s)' : a, 'voltage(V)' : b, 'current(A)' : c}) 

dann

df.to_csv('powdata.txt', sep='\t') 
+0

Dank, die wirklich hilfreich war, aber es schreibt auch die Anzahl der Wert neben es in der Textdatei wie [0,1,2, .........], ist ihr Anycha nce es nicht zu schreiben? – utdlegend

+0

ah ja, benutze stattdessen einfach df.to_csv ('powdata.txt', sep = '\ t', index = False). – tompiler

-1

Unter der Annahme, sie alle die gleiche Länge haben, verwenden sie ein Indexvariable le, um den richtigen Eintrag von jedem zu ziehen. Hier ist der Kern:

for i in len(a): 
    print(a[i], b[i], c[i]) 
2

Verwenden zip die Listen

a=['apple', 'banana', 'orange'] 
b=['a', 'b', 'c'] 

powdata=open("powdata.txt","w") 
for val in zip(a,b): 
    powdata.write('{}, {}\n'.format(val[0], val[1])) 
powdata.close()