Convertir un fichier texte en fichier CSV
Résolu/Fermé
JFL
-
Modifié le 1 avril 2022 à 15:18
mamiemando Messages postés 33336 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 5 novembre 2024 - 1 avril 2022 à 19:42
mamiemando Messages postés 33336 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 5 novembre 2024 - 1 avril 2022 à 19:42
A voir également:
- Convertir un fichier texte en fichier CSV
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
- Fichier iso - Guide
4 réponses
mamiemando
Messages postés
33336
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
5 novembre 2024
7 801
Modifié le 1 avril 2022 à 15:42
Modifié le 1 avril 2022 à 15:42
Bonjour,
Voilà comment tu peux faire :
Contenu de
Bonne chance
Voilà comment tu peux faire :
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import io # Si tu utilises un fichier, tu peux supprimer cette déclaration data = io.StringIO(""" Websites Website name: xxxxxxx Website URL: [https://xxxxxxxx.com] Login name: xxxxxxx Login: ***@*** Password: 123456 Comment: --- Website name:xxxxxxx Website URL: [http://xxxxxx.com] Login name: xxxxxxx Login: xxxxxxx Password: 123456 Comment: --- Website name: xxxxxxx Website URL: [http://xxxxxx.com] Login name: xxxxxxx Login: xxxxxxx Password: 123456 Comment: --- """) def parse_txt(data): entries = list() entry = dict() for line in data.readlines(): line = line.strip() if line == "---": entries.append(entry) entry = dict() if ":" in line: tab = line.split(":") key = tab[0].strip() value = ":".join(tab[1:]).strip() entry[key] = value if entry: entries.append(entry) return entries def entries_to_csv(entries, f): columns = sorted(set.union(*[ set(entry.keys()) for entry in entries ])) print("#" + ",".join(columns), file=f) print( "\n".join( ",".join( entry.get(key, "") for key in columns ) for entry in entries ), file=f ) entries = parse_txt(data) # Avec un fichier: # filename_txt = "fichier.txt" # with open(filename_txt) as f_in: # entries = parse_txt(f_in) filename_csv = "fichier.csv" with open(filename_csv, "w") as f_out: entries_to_csv(entries, f_out)
Contenu de
fichier.csv:
#Comment,Login,Login name,Password,Website URL,Website name
,***@***,xxxxxxx,123456,https://xxxxxxxx.com,xxxxxxx
,xxxxxxx,xxxxxxx,123456,http://xxxxxx.com,xxxxxxx
,xxxxxxx,xxxxxxx,123456,http://xxxxxx.com,xxxxxxx
Bonne chance
yg_be
Messages postés
23310
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 novembre 2024
Ambassadeur
1 551
1 avril 2022 à 11:52
1 avril 2022 à 11:52
bonjour,
pour t'aider, il faudrait que tu commences ton programme.
sinon, on le ferait à ta place.
pour t'aider, il faudrait que tu commences ton programme.
sinon, on le ferait à ta place.
Oui je comprends, je vais continuer à progresser sur le travail des fichiers txt avec python et proposer un code .
Mamiemando,
C'était costaud comme code à écrire et je suis encore loin de pouvoir générer ce que tu as écrit ! J'ai testé ton code et il marche du feu de Dieu. Grâce à toi je peux mettre Kaspersky password manager à la poubelle. Je ne sais comment te remercier.
Bonne soirée et bon WE.
C'était costaud comme code à écrire et je suis encore loin de pouvoir générer ce que tu as écrit ! J'ai testé ton code et il marche du feu de Dieu. Grâce à toi je peux mettre Kaspersky password manager à la poubelle. Je ne sais comment te remercier.
Bonne soirée et bon WE.
mamiemando
Messages postés
33336
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
5 novembre 2024
7 801
1 avril 2022 à 19:42
1 avril 2022 à 19:42
Je ne sais comment te remercier.
Hé bien comme tu l'as fait, c'est très bien :-) Bonne continuation !
Hé bien comme tu l'as fait, c'est très bien :-) Bonne continuation !