Comment écrire un dictionnaire dans un fichier existant?
Disons que j'ai un dictionnaire et je veux écrire dans un fichier existant. Comment puis-je le faire sans perdre quoi que ce soit qui pourraient déjà exister dans le fichier? Ce à quoi je pensais, c'est faire les suivants:
def write_report(r, filename):
input_filename=open(filename, "a")
input_filename.close()
for (k,v) in r.items():
input_filename.write(k,v)
return filename
ce que je veux faire en sorte que le nom de fichier correctement contient le dictionnaire.
source d'informationauteur user300
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
json
module de lire et d'écrire des structures de données au format JSON (en d'autres termes sérialiser en JSON et désérialiser de JSON).Par exemple:
pickle peut être un autre choix:
Mais uniquement les données qui ont été sérialisée par pickle pourrait être lu à l'aide de cornichon.charge. Donc, si vous voulez lire toutes les données depuis le fichier, vous devez cornichon.dump toutes les données dans le fichier.
Si vous voulez ajouter un texte à la représentation de chaque paire clé-valeur dans le dictionnaire dans un fichier texte, vous pouvez regarder dans l'approche suivante:
Ci-dessus peut être exprimé de façon plus propre avec la avec la de tresorerie.
Ce que vous avez déjà fait à l'aide de
open(filename, "a")
utilise le mode append - qui est à peu près tout ce que vous devez. En mode ajout, vous ne serez jamais remplacer ce qui est déjà dans le fichier. Le problème est qu'il ne garantit pas que vous êtes le seul à l'écriture - et si tout écrit peut être partielle, ils peuvent sortir illisibles si jamais il ya plusieurs auteurs travaillant sur le même fichier. Ce genre de problème peut être évité à l'aide de verrouillage de fichier.Le code que vous avez posté a un couple plus de problèmes, cependant, comme fermer le fichier avant de l'écrire, et le fait que l'écriture n'accepte qu'un seul argument de type chaîne. Vous aurez envie de sérialiser les données en plusieurs morceaux plus petits, pour lesquels Python propre module standard est cornichon (et étagère magasins de choses dans les fichiers de base de données), et JSON est plus largement format pris en charge.