Je veux ajouter une nouvelle ligne à ma chaîne chaque fois que j'appelle file.write()
. Quel est le moyen le plus simple de faire cela en Python ?
Réponses
Trop de publicités?Si vous en faites un usage intensif (beaucoup de lignes écrites), vous pouvez sous-classer 'file' :
class cfile(file):
#subclass file to have a more convienient use of writeline
def __init__(self, name, mode = 'r'):
self = file.__init__(self, name, mode)
def wl(self, string):
self.writelines(string + '\n')
Il offre maintenant une fonction supplémentaire wl qui fait ce que vous voulez :
with cfile('filename.txt', 'w') as fid:
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
Peut-être que je manque quelque chose comme des caractères de nouvelle ligne différents ( \n , \r ...) ou que la dernière ligne soit également terminée par une nouvelle ligne, mais cela fonctionne pour moi.
Que vous pourriez faire :
file.write(your_string + '\n')
comme suggéré par une autre réponse, mais pourquoi utiliser la concaténation de chaînes (lente, sujette aux erreurs) quand on peut appeler file.write
deux fois :
file.write(your_string)
file.write("\n")
Notez que les écritures sont mises en mémoire tampon, ce qui revient au même.
- Réponses précédentes
- Plus de réponses