2016-09-28 3 views
0

ich soetwas wie dies in output.txt DateiPython Tabellenansicht Ausgabe

habe
Service1:Aborted 
Service2:failed 
Service3:failed 
Service4:Aborted 
Service5:failed 

Ausgang in der 2. Datei (output2.txt):

Service1  Service2 Servive3 Service4  Service5 
Aborted   failed  failed  Aborted  failed 

Möchte Ausgabe im Tabellenformat erhalten wie oben

-Code ich versuche:

file=open('output.txt','r') 
    target=open('output2.txt','w') 
    states=[] 
    for line in file.readlines(): 
     parts=line.strip().split(':') 
     states.append(parts[1].strip()) 
    target.write(','.join(states))   
    target.close() 
+1

entfernen was komma ?? Die Dateien in Ihrem Beitrag haben keine Kommas – coder

+0

Sorry ich habe die Frage bearbeitet. @coder – sdrockzz

+0

Noch gibt es keine Kommas in output.txt noch in output2.txt – ElmoVanKielmo

Antwort

2

Sehr schnell:

headers = [] 
statuses = [] 

for line in file: 
    line=line.strip() 
    parts=line.split(":") 
    headers.append(parts[0]) 
    statuses.append(parts[1]) 

format_str = '{:>15}'*(len(headers)) 

print(format_str.format(*headers)) 
print(format_str.format(*statuses)) 
+0

haben Sie eine Idee, wie Sie Leerzeichen zwischen den einzelnen Wörtern entfernen und ein Komma hinzufügen (,)? @ adgon32 – sdrockzz

+0

Wenn Sie Leerzeichen vollständig entfernen möchten, müssen Sie nur die Formatierung entfernen. '', '. join (headers) 'und'', '. join (status) 'sollte für dich funktionieren @sdrockzz. – adgon92

0

Sie sind auf eigene Faust um herauszufinden, wie Sie Ihre Eingabedaten in ein numpy Array zu erhalten, und welche beispielsweise die reshape funktioniert, aber das soll man etwa 75% bis zum Ende erhalten Linie

import numpy as np 
import pandas as pd 
A_in = [[1,2,3],[4,5,6]] 
B = pd.DataFrame(np.array(A_in).reshape(3,2)) 
B.to_csv('output2.txt,'\t')