Bonjour,
J'ai un fichier avec des lignes sous cette forme
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 :
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 + "\"") |
Partager