Come leggere da stdin in Python

How Read From Stdin Python



Prendere input dall'utente è una parte importante di qualsiasi linguaggio di programmazione. L'output dei molti programmi dipende dall'input standard. Il modo di ricevere input dall'utente è diverso per i diversi linguaggi di programmazione. Esistono molti modi in Python per leggere dallo standard input. Il funzione input() è il modo più comune è leggere dallo standard input, che è una funzione incorporata. Il sys.stdin è un altro modo è leggere dall'input standard le chiamate funzione input() internamente. Python ha un altro modulo chiamato fileinput per la lettura dell'input standard. Il funzione input() di questo modulo può essere utilizzato per leggere input standard o leggere contenuti da uno o più file. In questo tutorial sono stati spiegati diversi modi per leggere dallo standard input in Python.

Esempio-1: leggere i dati da stdin utilizzando la funzione input()

La funzione input() è la funzione più utilizzata per ricevere input dall'utente. Crea un file python con il seguente script per ricevere input dall'utente fino a quando non viene premuto il tasto 'n'. Qui, viene creato un ciclo infinito utilizzando il ciclo while. La prima funzione input() viene utilizzata per acquisire i dati dall'utente e la funzione print() viene utilizzata per stampare il valore di input. Successivamente, la funzione input() dello script viene utilizzata per chiedere all'utente di continuare nuovamente l'attività o uscire dallo script. Se l'utente preme 'n' o 'N', l'iterazione del ciclo verrà interrotta dall'istruzione break; in caso contrario, il ciclo itererà di nuovo e riceverà un altro input dall'utente. La funzione upper() viene utilizzata nello script per capitalizzare il valore fornito dall'utente.







# Definisci un ciclo infinito

mentre Vero:

# Accetta input dall'utente

inputVal= ingresso('Digita qualsiasi testo: ')

# Stampa il valore di input

Stampa('Il valore di input è %s'%(inputVal))

# Richiedi la prossima iterazione

ingresso successivo= ingresso('Vuoi continuare? (S/N)')

# Termina dal ciclo se viene premuto 'n'

SenextInput.superiore() == 'N':

rottura

# Stampa il messaggio di chiusura

Stampa('Programma terminato.')

Produzione:

Il seguente output simile apparirà dopo aver eseguito lo script sopra. Qui, ' LinuxSuggerimento ' ha fornito come primo valore di input ed è terminato dallo script per premere il carattere, 'n'.





Esempio 2: leggere i dati da stdin utilizzando sys.stdin

Il sys.stdin è un'altra opzione di Python per prendere l'input standard dagli utenti dal terminale. Chiama la funzione input() internamente e aggiunge ' ' dopo aver preso l'input. Creare un file python con il seguente script per verificare l'uso del sys.stdin per prendere l'input standard. Qui, il ciclo 'for-in' viene utilizzato per ricevere l'input dall'utente infinite volte fino a quando l'utente non desidera terminare lo script. Dopo aver stampato il valore di input, il funzione input() viene utilizzato per chiedere all'utente di interrompere o meno lo script. Lo script verrà terminato se l'utente preme ' e ' o ' E '. Il funzione superiore() viene utilizzato anche qui per capitalizzare il valore di input.





# Importa modulo sys

importare sistema


Stampa('Digita qualsiasi testo:')


# Accetta input usando stdin

perinputValin sistema.standard:

# Stampa il valore di input

Stampa('Il valore di input è:%s'% inputVal)


# Richiedi la prossima iterazione

ingresso successivo= ingresso('Vuoi terminare? (S/N)')

# Termina dal ciclo se viene premuto 'y/Y'

SenextInput.striscia().superiore() == 'E':

rottura

altro:

Stampa('Digita qualsiasi testo:')

Produzione:

Il seguente output simile apparirà dopo aver eseguito lo script sopra. Qui, ' Programmazione Python ' ha fornito come primo valore di input e terminato dallo script per premere il carattere, 'y'.



Esempio 3: leggere i dati da stdin utilizzando fileinput

Il fileinput è un altro modulo di Python per prendere l'input standard. Le righe di testo possono essere prese dal terminale o da un file usando fileinput.input() . Se non viene fornito alcun valore di argomento in questa funzione, prenderà l'input dal terminale e se il nome di un file esistente viene fornito come valore di argomento, prenderà l'input dal file. Crea un file python con il seguente script per prendere l'input standard dal terminale. Qui, il ciclo 'for-in' viene utilizzato come esempio precedente per ricevere input per infinite volte fino a quando l'utente non desidera terminare lo script. Successivamente, la funzione input() viene utilizzata per chiedere all'utente di interrompere o meno lo script. Lo script verrà terminato se l'utente digita 'Esci' o 'Esci' o 'ESCI' . Il funzione superiore() viene utilizzato anche qui per capitalizzare il valore di input. Il funzione strip() viene utilizzato per rimuovere gli spazi extra da entrambi i lati del valore di input.

# Importa il modulo di input del file

importare fileinput


Stampa('Inserisci il testo:')

'' '

Accetta input usando la funzione fileinput.input() e

premi ctrl+D per finire di prendere il valore di input

'' '


perinputValin fileinput.ingresso():

# Termina dal ciclo se viene digitato 'quit'

SeinputVal.striscia().superiore() == 'USCIRE':

rottura


# Stampa il valore di input

Stampa('Il valore di input è:',inputVal)

Stampa('Inserisci il testo:')

Produzione:

Il seguente output simile apparirà dopo aver eseguito lo script sopra. Qui, 'Learn Python from LinuxHint.com' è stato fornito come primo valore di input e terminato dallo script per digitare la parola 'quit'. Devi ricordare una cosa mentre prendi input dal terminale usando il fileinput modulo. Cioè, devi premere ctrl + d dopo aver preso l'input.

Devi fornire il nome del file come valore dell'argomento del fileinput.input() funzione se vuoi prendere i dati dal file invece che dal terminale.

Conclusione:

In questo tutorial sono stati mostrati tre diversi modi per ricevere input dal terminale utilizzando tre semplici esempi. Non è necessario alcun modulo per utilizzare il funzione input() per aver preso l'input. Il modulo sys è necessario per l'importazione per l'utilizzo sys.stdin , e il modulo input file è necessario importare per l'utilizzo fileinput.input() nello script per prendere l'input standard. Spero che gli utenti Python prendano l'input standard in base alle loro esigenze dopo aver letto questo tutorial.