Eu pesquisei e só consigo encontrar perguntas sobre o contrário: escrever stdin em um arquivo :)
Existe uma maneira rápida e fácil de despejar o conteúdo de um arquivo no stdout?
Eu pesquisei e só consigo encontrar perguntas sobre o contrário: escrever stdin em um arquivo :)
Existe uma maneira rápida e fácil de despejar o conteúdo de um arquivo no stdout?
Respostas:
Certo. Supondo que você tenha uma string com o nome do arquivo chamado fname, o seguinte resolve.
with open(fname, 'r') as fin:
print(fin.read())
print(fin.read(), end=""). Para aproveitar essa solução no Python 2, um prefixo from __future__ import print_functionserá necessário. Claro, os aplicativos Python 2 devem sempre usar a print()função Python 3 de qualquer maneira - então isso não é um fardo.
f = open('file.txt', 'r')
print f.read()
f.close()
De http://docs.python.org/tutorial/inputoutput.html
Para ler o conteúdo de um arquivo, chame f.read (size), que lê alguma quantidade de dados e os retorna como uma string. size é um argumento numérico opcional. Quando o tamanho é omitido ou negativo, todo o conteúdo do arquivo será lido e retornado; o problema é seu se o arquivo for duas vezes maior que a memória da máquina. Caso contrário, no máximo os bytes de tamanho são lidos e retornados. Se o final do arquivo for alcançado, f.read () retornará uma string vazia ("").
Se precisar fazer isso com o pathlibmódulo, você pode usar pathlib.Path.open()para abrir o arquivo e imprimir o texto de read():
from pathlib import Path
fpath = Path("somefile.txt")
with fpath.open() as f:
print(f.read())
Ou simplesmente ligue pathlib.Path.read_text():
from pathlib import Path
fpath = Path("somefile.txt")
print(fpath.read_text())