Gestion de fichier python
Fermé
CriSraline
Messages postés
6
Date d'inscription
samedi 22 mai 2021
Statut
Membre
Dernière intervention
22 juin 2022
-
Modifié le 2 juin 2022 à 16:20
mamiemando Messages postés 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 - 2 juin 2022 à 16:32
mamiemando Messages postés 33535 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 février 2025 - 2 juin 2022 à 16:32
A voir également:
- Gestion de fichier python
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Fichier iso - Guide
2 réponses
MathKode
Messages postés
25
Date d'inscription
mardi 25 février 2020
Statut
Membre
Dernière intervention
10 juin 2022
6
Modifié le 2 juin 2022 à 16:21
Modifié le 2 juin 2022 à 16:21
Le problème avec la suppression de ligne c'est qu'on ne peut pas l'inverser.
Voici un code qui le fait (sans inverser) :
Pour retrouver le code original, je te conseille de te tourner vers la cryptographie...
Voici un code qui le fait (sans inverser) :
def end(): #Recupere le contenu file = open("<CODE>.py","r") contenu = file.read().split("\n") file.close() #Supprime les 10 premieres lignes for i in range(10): del contenu[0] #Sauvegarde le nouveau fichier (et écrase l'ancien) file = open("<CODE>.py","w") file.write("\n".join(contenu)) file.close()
Pour retrouver le code original, je te conseille de te tourner vers la cryptographie...
mamiemando
Messages postés
33535
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 février 2025
7 828
2 juin 2022 à 16:32
2 juin 2022 à 16:32
Bonjour,
Personnellement je n'ai pas vraiment compris ton problème, sans doute car tu n'as pas expliqué à quelle moment
En outre, quel est l'intérêt de sauver des données sur le disque dur si tu ne veux pas qu'elles soient lues ? Pourquoi ne pas juste les garder en mémoire ?
Si tu as besoin de les charger au prochain lancement du programme, comment espérer les retrouver si tu ne peux pas les charger depuis un fichier ?
Concernant la cryptographie, ça peut être une solution "limitante" mais pas bloquante dans l'absolu, car un fichier python est lisible, donc la technique de chiffrement / chiffrement est probablement reproductible en dehors du programme. Si tu veux une solution "limitante" pour la majorité des utilisateurs, tu pourrais te contenter de sauver tes données sous formes binaires (e.g., avec
Concernant le code de ton premier message, pour un code plus propre, on gère les ouvertures de fichiers au sens large (ce qui inclue, comme dans ton cas, les fichiers réguliers, mais également les sockets) dans un context manager (via l'instruction
Plutôt qu'utiliser la méthode
Bonnne chance
Personnellement je n'ai pas vraiment compris ton problème, sans doute car tu n'as pas expliqué à quelle moment
réponses.txtétait lu (au chargement de l'application), qui l'avait créé, et son rôle une fois l'application fermée.
En outre, quel est l'intérêt de sauver des données sur le disque dur si tu ne veux pas qu'elles soient lues ? Pourquoi ne pas juste les garder en mémoire ?
Si tu as besoin de les charger au prochain lancement du programme, comment espérer les retrouver si tu ne peux pas les charger depuis un fichier ?
Concernant la cryptographie, ça peut être une solution "limitante" mais pas bloquante dans l'absolu, car un fichier python est lisible, donc la technique de chiffrement / chiffrement est probablement reproductible en dehors du programme. Si tu veux une solution "limitante" pour la majorité des utilisateurs, tu pourrais te contenter de sauver tes données sous formes binaires (e.g., avec
pickleou
dill) plutôt qu'utiliser un format texte.
Concernant le code de ton premier message, pour un code plus propre, on gère les ouvertures de fichiers au sens large (ce qui inclue, comme dans ton cas, les fichiers réguliers, mais également les sockets) dans un context manager (via l'instruction
with) afin de garantir que tout est fermé quand il faut et s'il le faut (notamment en cas d'exception).
lines = None with open("mon_fichier.txt", "r") as f: lines = f.readlines() print(lines)
Plutôt qu'utiliser la méthode
write, on peut aussi écrire dans un fichier comme on le ferait avec la sortie standard à l'aide de
with open("mon_fichier.txt", "w") as f: print("Hello", file=f)
Bonnne chance
2 juin 2022 à 13:19
Et ensuite c'est pas un problème si on peut pas l'inverser je garderai un fichier de sauvegarde au cas ou c'est le but que la suppression de mes lignes ne soient pas inversible :D Si le code le fait parfaitement ça ne te dérange pas que je le pique :D ?
Et dernière petite question je vois dans ta boucle for que le fichier va supprimer les 10 premières lignes de mon fichier ^^ je peux pas faire en sorte de supprimer seulement les lignes que je veux et non les x premières lignes ?
Et merci pour la cryptographie je viens de regarder et ça à l'air très intéressant je vais plus me tourner sur ça je oense
Merci :D