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?
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éfixagefrom __future__ import print_function
sera nécessaire. Bien sûr, les applications Python 2 doivent toujours utiliser laprint()
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.
la source
f = open('file.txt', 'r') print f.read() f.close()
Depuis http://docs.python.org/tutorial/inputoutput.html
la source
Ma version abrégée en Python3
print(open('file.txt').read())
la source
vous pouvez aussi essayer ceci
print ''.join(file('example.txt'))
la source
Vous pouvez essayer ceci.
txt = <file_path> txt_opn = open(txt) print txt_opn.read()
Cela vous donnera une sortie de fichier.
la source
Si vous devez le faire avec le
pathlib
module, vous pouvez utiliserpathlib.Path.open()
pour ouvrir le fichier et imprimer le texte à partir deread()
: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())
la source
Pour améliorer la réponse de @ bgporter, avec Python-3, vous voudrez probablement opérer sur des octets au lieu de convertir inutilement des choses en utf-8:
>>> import shutil >>> import sys >>> with open("test.txt", "rb") as f: ... shutil.copyfileobj(f, sys.stdout.buffer)
la source