Pourquoi le langage Python n'a pas de méthode writeln ()?
Si nous avons besoin d'écrire une nouvelle ligne à un fichier, nous devons code:
file_output.write('Fooo line \n')
Sont là des raisons pour lesquelles Python n'ont pas de writeln()
méthode?
source d'informationauteur systempuntoout
Vous devez vous connecter pour publier un commentaire.
Il a été omis de fournir un symétrique de l'interface de la
file
méthodes et parce qu'unwriteln()
aurait aucun sens:read()
correspondwrite()
: ils fonctionnent sur les données brutesreadlines()
correspondwritelines()
: ils fonctionnent sur les lignes, y compris leurs EOLsreadline()
est rarement utilisé; un itérateur qui fait le même travail (sauf pour l'optionsize
param)Un
writeline()
(ouwriteln()
) serait essentiellement le même quewrite()
car il ne serait pas ajouter une EOL (pour correspondre au comportement dewritelines()
).La meilleure façon d'imiter un
print
à un fichier est d'utiliser le spécial d'impression-pour-fichier de syntaxe de Python 2.x ou lefile
argument mot-clé de laprint()
fonction, comme Daniel l'a suggéré.Personnellement, je préfère le
print >>file, ...
la syntaxe sur lafile.write('...\n')
.En Python 2, utilisation:
En Python 3, utilisation:
Je pense qu'il devrait. Plus proche chose que vous pouvez utiliser est:
print()
est la fonction que vous recherchez. Comme une grande partie du polymorphisme en python, l'impression est assurée par une fonction intégrée au lieu d'utiliser des méthodes (commelen()
next()
repr()
etc!).La
print()
fonction de l'interface universelle, il est plus polyvalent, sans que le fichier des objets eux-mêmes avoir à mettre en œuvre. Dans ce cas, la valeur par défaut de résiliation en ligne, mais il peut être choisi dans l'appel de la fonction, par exemple:Dans votre cas d'utilisation, tous les objets de fichier pour la mise en œuvre non seulement un
.write()
méthode (maintenant utilisé parprint()
), mais aussi.writeln()
et peut-être même plus! Cette fonction basée sur le polymorphisme rend python très riche, sans peser sur les interfaces (rappelez-vous comment duck-typing œuvres).Remarque: Ce modèle a toujours été au centre de Python. C'est seulement plus pur dans mes exemples, qui concernent Python 3
Probablement aucune raison, juste que c'est vraiment facile d'écrire une nouvelle ligne quand vous en avez besoin, alors pourquoi s'encombrer l'interface de fichier avec une méthode supplémentaire juste pour le faire?