2017-06-09 6 views
0

Je suis un débutant en programmation, mais pour une expérience de catégorisation de texte néerlandais, je veux transformer chaque instance (ligne) d'un fichier CSV dans des fichiers. Txt séparés, de sorte que les textes peut être analysé par un outil PNL. Mon csv ressemble à ceci.Fichier csv de données dans différents fichiers texte avec Python

enter image description here

Comme vous pouvez le voir, chaque instance a le texte dans la colonne « Taaloefening1 » ou dans la colonne « Taaloefening2 ». Maintenant, je dois enregistrer le texte par instance dans un fichier .txt et le nom du fichier doit être l'identifiant et l'étiquette. J'espérais pouvoir le faire automatiquement en programmant un script en Python en utilisant le module csv. J'ai une idée sur la façon d'enregistrer le texte dans un fichier. Txt, mais je n'ai aucune idée de la façon de prendre l'id et l'étiquette, qui correspondent au texte, comme le nom du fichier. Des idées?

+1

Le module (https://docs.python.org/3/library/csv.html) [ 'csv'] contient certains utiles outils. – Kendas

+0

@Kendas, le module 'csv' fonctionne-t-il aussi pour le format' xls'? –

+0

@ ÉbeIsaac Je ne suis pas sûr, mais pour être sûr, j'exporterais le fichier dans un format 'csv'. – Kendas

Répondre

1

Le csv.DictReader devrait être en mesure de faire ce que vous avez besoin:

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)