Disons que j'ai fichier/etc/conf1Comment puis-je modifier un fichier et écrire uniquement les modifications sur le disque - essentiellement, sed (python)?
son contenu sont le long des lignes de
option = banana
name = monkey
operation = eat
et disons que je veux remplacer « singe » par « autruche ». Comment puis-je faire cela sans lire le fichier en mémoire, en le modifiant et en le réécrivant tout simplement? Fondamentalement, comment puis-je modifier le fichier "en place"?
Difficulté. Que pensez-vous que vous feriez en modifiant "en place"? Est-ce un gros dossier et vous avez peur de le garder en mémoire? – MattH
Je pense que vous ne pouvez pas si vous voulez changer la taille du fichier. De plus, 'sed' ne peut pas faire cela, il n'est tout simplement pas supporté par les systèmes d'exploitation actuels. Comme alternative, vous pouvez regarder dans le module 'ConfigParser' pour analyser les fichiers de configuration de type INI. – Philipp
Dans le cas présent, il s'agit plus d'un hypothétique "quelles sont les chances de moi lire un fichier, le modifier, l'écrire et avoir un problème à mi-chemin et se retrouver avec un fichier corrompu?" problème. J'ai pensé à une approche "lire conf1, modifier, écrire à conf1.temp, mv conf1.temp conf1", mais je pensais qu'il pourrait y avoir une façon plus élégante de le faire. En place, mod serait cool. – Neoscopio