J'ai cherché et je ne trouve que des questions sur l'inverse: écrire stdin dans un fichier :)
Existe-t-il un moyen rapide et facile de vider le contenu d'un fichier sur stdout?
J'ai cherché et je ne trouve que des questions sur l'inverse: écrire stdin dans un fichier :)
Existe-t-il un moyen rapide et facile de vider le contenu d'un fichier sur stdout?
Réponses:
Sûr. En supposant que vous ayez une chaîne avec le nom du fichier appelé fname, ce qui suit fait l'affaire.
with open(fname, 'r') as fin:
print(fin.read())
print(fin.read(), end=""). Pour tirer parti de cette solution sous Python 2, un préfixage from __future__ import print_functionsera nécessaire. Bien sûr, les applications Python 2 doivent toujours utiliser la print()fonction Python 3 de toute façon - ce n'est donc pas un fardeau.
S'il s'agit d'un fichier volumineux et que vous ne voulez pas consommer une tonne de mémoire comme cela pourrait arriver avec la solution de Ben, le code supplémentaire dans
>>> import shutil
>>> import sys
>>> with open("test.txt", "r") as f:
... shutil.copyfileobj(f, sys.stdout)
fonctionne également.
f = open('file.txt', 'r')
print f.read()
f.close()
Depuis http://docs.python.org/tutorial/inputoutput.html
Pour lire le contenu d'un fichier, appelez f.read (size), qui lit une certaine quantité de données et la renvoie sous forme de chaîne. size est un argument numérique facultatif. Lorsque la taille est omise ou négative, tout le contenu du fichier sera lu et renvoyé; c'est votre problème si le fichier est deux fois plus grand que la mémoire de votre machine. Sinon, au plus size octets sont lus et renvoyés. Si la fin du fichier a été atteinte, f.read () renverra une chaîne vide ("").
Si vous devez le faire avec le pathlibmodule, vous pouvez utiliser pathlib.Path.open()pour ouvrir le fichier et imprimer le texte à partir de read():
from pathlib import Path
fpath = Path("somefile.txt")
with fpath.open() as f:
print(f.read())
Ou appelez simplement pathlib.Path.read_text():
from pathlib import Path
fpath = Path("somefile.txt")
print(fpath.read_text())