Dare print
un argomento file
parola chiave, in cui il valore dell'argomento è un flusso di file. Siamo in grado di creare un flusso di file utilizzando la funzione open
:
print("Hello stackoverflow!", file=open("output.txt", "a"))
print("I have a question.", file=open("output.txt", "a"))
Dal Python documentation about print
:
L'argomento file
deve essere un oggetto con un metodo write(string)
; se non è presente o None
, verrà utilizzato sys.stdout
.
E the documentation for open
:
Aprire file
e restituire un oggetto file corrispondente. Se il file non può essere aperto, viene sollevato un numero OSError
.
Il "a"
come secondo argomento di open
significa "append" - in altre parole, non saranno sovrascritti i contenuti esistenti del file. Se si desidera che il file venga sovrascritto, utilizzare "w"
.
fonte
2016-04-12 11:12:38
grazie per questa risposta. Una volta eseguita la prima riga del codice (prima stampa), il file corrispondente viene chiuso prima dell'esecuzione effettiva del secondo comando di stampa. Destra? C'è un modo per stampare un sacco di cose tutte insieme nello stesso file ma assicurandosi che il file si chiuda prima che venga eseguito il secondo ciclo? In altre parole, mi piacerebbe stampare alcune cose negli stessi file per ogni giro del ciclo con il file di chiusura in mezzo. Grazie, – Allan
@ Allan, dovresti usare un'istruzione 'with' per aprire il file. Questo crea un oggetto 'file' e lo mantiene aperto su un intero blocco, quindi lo chiude alla fine. Guarda il primo esempio [in questo articolo] (http://preshing.com/20110920/the-python-with-statement-by-example/). Fammi sapere se hai altre domande! –