2017-06-09 5 views
0

Ich bin ein Anfänger in der Programmierung, aber für eine niederländische Text Kategorisierung Experiment möchte ich jede Instanz (Zeile) einer CSV-Datei in separate TXT-Dateien, so dass die Texte kann mit einem NLP-Tool analysiert werden. Mein CSV sieht so aus.Daten csv-Datei in verschiedene Textdateien mit Python

enter image description here

Wie Sie sehen können, hat jede Instanz Text in der Spalte 'Taaloefening1' oder in der Spalte 'Taaloefening2'. Jetzt muss ich den Text pro Instanz in einer TXT-Datei speichern und der Name der Datei muss die ID und das Label sein. Ich hatte gehofft, ich könnte dies automatisch durch Programmierung eines Skripts in Python mit dem csv-Modul. Ich habe eine Idee, wie man den Text in eine TXT-Datei speichert, aber ich habe keine Ahnung, wie man die ID und das Etikett, die mit dem Text übereinstimmen, als Dateinamen nimmt. Irgendwelche Ideen?

+1

Die [ 'csv'] (https://docs.python.org/3/library/csv.html) Modul einige nützliche enthält Werkzeuge. – Kendas

+0

@Kendas, funktioniert 'csv' Modul auch für' xls' Format? –

+0

@ ÉbeIsaac Ich bin mir nicht sicher, aber ich würde die Datei in ein 'CSV'-Format exportieren. – Kendas

Antwort

1

Die csv.DictReader sollte in der Lage sein zu tun, was Sie brauchen:

from csv import DictReader 

INPUT_FILE = 'data.csv' 

with open(INPUT_FILE, 'rb') as csvfile: 
    reader = DictReader(csvfile) 
    for row in reader: 
     file_name = "{}_{}.txt".format(row["id"], row["Label"]) 
     if row["Taaloefening1"]:  # if this field is not empty 
      line = row["Taaloefening1"] + '\n' 
     elif row["Taaloefening2"]: 
      line = row["Taaloefening2"] + '\n' 
     else: 
      print("Both 'Taaloefening2' and 'Taaloefening2' empty on {}_{}. Skipping.".format(row["id"], row["Label"])) 
      continue 
     with open(file_name, 'w') as output: 
      output.write(line) 
Verwandte Themen