Esiste un one-liner per leggere tutte le righe di un file in Python, piuttosto che lo standard:Python File Slurp
f = open('x.txt')
cts = f.read()
f.close()
Sembra che questo è fatto così spesso che ci deve essere un one liner. Qualche idea?
Esiste un one-liner per leggere tutte le righe di un file in Python, piuttosto che lo standard:Python File Slurp
f = open('x.txt')
cts = f.read()
f.close()
Sembra che questo è fatto così spesso che ci deve essere un one liner. Qualche idea?
Ciò trangugiare il contenuto in una singola stringa in Python 2.6 e soprattutto:
with open('x.txt') as x: f = x.read()
E questo creerà un elenco di linee:
with open('x.txt') as x: f = x.readlines()
Questi approcci garantiscono chiusura immediata del file di input subito dopo la lettura.
Nota:
from __future__ import with_statement
.Un approccio vecchio che non garanzia chiusura immediata è quella di utilizzare questo per creare una singola stringa:
f = open('x.txt').read()
E questo per creare un elenco di linee:
f = open('x.txt').readlines()
In pratica verrà immediatamente chiuso in alcune versioni di CPython, ma chiuso "solo quando la spazzatura il collezionista fa il giro "su Jython, IronPython e probabilmente su una futura versione di CPython.
Questo è quello che avrei immaginato, ma non sapevo quando il file aperto sarebbe stato chiuso. Grazie! –
Se siete su python3, assicurarsi di rispettare correttamente la codifica in ingresso del file, ad es .:
import codecs
with codecs.open(filename, 'r', encoding="utf8") as file:
cts = file.read()
Trova l'elenco dei nomi di codec nel Python3 codec list. (Il meccanismo è consigliabile anche per Python2 ogni volta che si prevede un input non ASCII)
Vorrei sapere perché questo è stato votato. –
Alcune persone potrebbero considerare il problema della codifica off-topic. Inoltre, il mio codice non è minimale: l'uso di builtin'open' come in 'open (filename, 'r', encoding = 'utf8')' salverebbe l'istruzione import e renderebbe la risposta più adatta alla domanda. –
Divertente, avevo bisogno di nuovo e ho cercato su Google. Non ho mai pensato che sarebbe sorta la mia domanda :) –
Continuo a trovarlo anche quando sto cercando http://stackoverflow.com/questions/1450393/how-do-you-read-from-stdin-in-python – tripleee