Convertir un fichier texte en fichier CSV
Résolu
Bonjour
J'ai arrêté d'utiliser la suite
Qui pourrait m'aider à écrire un script python transformant le fichier texte suivant en CSV ? Étant débutant, en code python j'ai peur de ne pas y arriver. Ci-dessous, le format du fichier produit par
Merci beaucoup.
J'ai arrêté d'utiliser la suite
kasperskyet je suis bloqué pour exporter mes mots de passe. Je voudrais utiliser le logiciel libre
keepasset importer un fichier CSV contenant mes 150 passwords. Hélas, kaspersky manager ne proppose que d'exporter des fichier texte.
Qui pourrait m'aider à écrire un script python transformant le fichier texte suivant en CSV ? Étant débutant, en code python j'ai peur de ne pas y arriver. Ci-dessous, le format du fichier produit par
kaspersky.
Merci beaucoup.
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:
---
A voir également:
- Convertir un fichier texte en fichier CSV
- Fichier bin - Guide
- Fichier epub - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
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
Oui je comprends, je vais continuer à progresser sur le travail des fichiers txt avec python et proposer un code .