Ho cercato e posso trovare solo domande circa il contrario: la scrittura su un file stdin :)Python: la stampa di un file allo stdout
Esiste un modo semplice e veloce per scaricare il contenuto di un file su stdout?
Ho cercato e posso trovare solo domande circa il contrario: la scrittura su un file stdin :)Python: la stampa di un file allo stdout
Esiste un modo semplice e veloce per scaricare il contenuto di un file su stdout?
Sicuro. Supponendo di avere una stringa con il nome del file chiamato fname
, quanto segue fa il trucco.
with open(fname, 'r') as fin:
print fin.read()
f = open('file.txt', 'r')
print f.read()
f.close()
Da http://docs.python.org/tutorial/inputoutput.html
Per leggere il contenuto di un file, chiamate f.read (dimensione), in cui si legge una certa quantità di dati e li restituisce come una stringa. la dimensione è un argomento numerico facoltativo. Quando la dimensione è omessa o negativa, l'intero contenuto del file sarà letto e restituito; è il tuo problema se il file è due volte più grande della memoria della tua macchina. Altrimenti, alla maggior parte dei byte di dimensione vengono letti e restituiti. Se la fine del file è stata raggiunta, f.read() restituirà una stringa vuota ("").
Se si tratta di un file di grandi dimensioni e non si vuole consumare una tonnellata della memoria come potrebbe accadere con la soluzione di Ben, il codice aggiuntivo in
>>> import shutil
>>> import sys
>>> with open("test.txt", "r") as f:
... shutil.copyfileobj(f, sys.stdout)
funziona anche.
Puoi provare questo.
txt = <file_path>
txt_opn = open(txt)
print txt_opn.read()
Questo vi darà l'output del file.
si può anche provare questo
print ''.join(file('example.txt'))
La mia versione abbreviata in python3
print(open('file.txt').read())
Funziona perfettamente grazie – MDMoore313
Si noti che questo aggiungerà una nuova riga extra alla fine della produzione. –
Sia per la compatibilità con Python 3 che per evitare la riga finale finale, l'ultima riga dovrebbe probabilmente leggere: 'print (fin.read(), end =" ")'. Per sfruttare questa soluzione con Python 2, sarà necessario un prefisso 'from __future__ import print_function'. Ovviamente, le applicazioni Python 2 dovrebbero sempre utilizzare la funzione di Python 3 'print()', quindi non è un grosso problema. –