2015-06-19 14 views
5

Ich habe eine CSV-Datei, die bestimmte Spalten hat, die ich extrahieren muss. Eine dieser Spalten ist eine Textzeichenfolge, aus der ich die ersten und letzten Elemente extrahieren muss. Ich habe eine print-Anweisung in einer for-Schleife, die genau das bekommt, was ich brauche, aber nicht herausfinden kann, wie man diese Daten entweder in eine Liste oder ein Diktat bekommt. Nicht sicher, welches das beste ist.Python CSV-Datei lesen und Spalten auswählen und in neue CSV-Datei schreiben

-Code bisher:

f1 = open ("report.csv","r") # open input file for reading 
users_dict = {} 
with open('out.csv', 'wb') as f: # output csv file 

writer = csv.writer(f) 
with open('report.csv','r') as csvfile: # input csv file 
    reader = csv.DictReader(csvfile, delimiter=',') 
    for row in reader: 
     print row['User Name'],row['Address'].split(',')[0],row['Last Login DateTime'],row['Address'].split(',')[7] 
     users_dict.update(row) 
     #users_list.append(row['Address'].split(',')) 
     #users_list.append(row['Last Login DateTime']) 
     #users_list.append(row[5].split(',')[7]) 

print users_dict 

f1.close() 

Eingabe von Datei:

User Name,Display Name,Login Name,Role,Last Login DateTime,Address,Application,AAA,Exchange,Comment 
SUPPORT,SUPPORT,SUPPORT,124,2015-05-29 14:32:26,"Test Company,Bond St,London,London,1111 111,GB,[email protected],IS",,,LSE, 

Ausgabe auf Druck:

SUPPORT Test Company 2015-05-29 14:32:26 IS 
+1

Ist das die Ausgabe, die Sie wollen? Wenn nicht, welche Ausgabe * willst du? –

+0

Die Ausgabe ist genau wie ich es will, es in eine Liste/dict bekommen oder auf eine neue csv geschrieben, ich kann nicht arbeiten. –

Antwort

0

Mit einigen Tests ich endlich die Linie, die die CSV-Datei zu schreiben:

for row in reader: 
    writer.writerow([row['User Name'],row['Address'].split(',')[0],row['Last Login DateTime'],row['Address'].split(',')[7]]) 
0

diesen Code verwenden, habe ich die Linie, was Sie brauchen:

import csv 
f1 = open ("report.csv","r") # open input file for reading 
users_dict = {} 
with open('out.csv', 'wb') as f: # output csv file 
    writer = csv.writer(f) 
    with open('report.csv','r') as csvfile: # input csv file 
     reader = csv.DictReader(csvfile, delimiter=',') 
     for row in reader: 
      print row['User Name'],row['Address'].split(',')[0],row['Last Login DateTime'],row['Address'].split(',')[7] 
      users_dict.update(row) 
      #users_list.append(row['Address'].split(',')) 
      #users_list.append(row['Last Login DateTime']) 
      #users_list.append(row[5].split(',')[7]) 

    print users_dict 

f1.close() 

Die einzigen Änderungen:

  • an der Spitze der import csv inklusive.
  • Einrücken den Code direkt nach dem with open('out.csv' ......

Ist dies Ihr Problem lösen?

+0

Sorry, ich habe den Import-Csv beim Kopieren/Einfügen des Codes in die Frage verpasst. Das Problem, das ich habe, ist, alle Datenzeilen gemäß dem Druckbefehl entweder in eine Variable zu bekommen oder in eine zweite CSV zu schreiben. Der Druckbefehl ist genau die Daten, die ich möchte. –

+0

Druckzeile ['Benutzername'], Zeile ['Adresse']. Split (',') [0], Zeile ['Letzte Anmeldung DateTime'], Zeile ['Adresse']. Split (',') [ 7] –

Verwandte Themen