Bonjour,

J'ai un fichier avec des lignes sous cette forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
field1 field2 field3 " field 4 "
Je voudrais par ligne, récupérer chaque champ dans un tableau, sachant que :
- une ligne peut être vide ou contenir des espaces ou/et des tabulations
- chaque champ est séparé par un ou plusieurs caractères espace ou/et tabulation
- si un champ est entre guillemet, les caractère espace ou tabulation ne doivent pas être supprimés
- si un champ est entre guillemet, les guillemets doivent être supprimés. ex : "salut toi" => salut toi.
- si un guillemet est ouvert mais n'est pas refermé, la ligne ne doit pas être prise en compte (et un message d'erreur doit être généré)
- si le caractère guillemet est précédé du caractère '\', il doit être géré comme un caractère normal et le '\' doit être supprimé. ex : "salut \"toi " => salut "toi.

Comment faut-il faire pour gérer cela ?... la principale problématique étant de gérer les guillemets et les multiple caractères de séparation de champ (espace et tabulation)

Mon code actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
with open('file.ini', "r") as textfile:
  for line in textfile:
    line = line.strip() # suppression retour de ligne
    if not line:
      continue # ligne vide
 
    print(line)
 
    fields = line.split(' ')
    if not fields:
      continue # pas de champ
 
    for field in fields:
      print("\"" + field + "\"")