Περισσότερα
Πώς διαβάζετε από το stdin;
Προσπαθώ να κάνω μερικές από τις προκλήσεις code golf, αλλά όλες απαιτούν την είσοδο να ληφθεί από το stdin
. Πώς μπορώ να το πάρω αυτό στην Python;
1378
3
Θα μπορούσατε να χρησιμοποιήσετε την ενότητα
fileinput
:Το `
fileinput
θα κάνει βρόχο σε όλες τις γραμμές της εισόδου που καθορίζονται ως ονόματα αρχείων που δίνονται στα ορίσματα της γραμμής εντολών, ή στην τυπική είσοδο αν δεν παρέχονται ορίσματα.Σημείωση: Η
line
θα περιέχει μια νέα γραμμή στο τέλος της γραμμής- για να την αφαιρέσετε χρησιμοποιήστε τηνline.rstrip()
.Υπάρχουν μερικοί τρόποι για να το κάνετε.
Το
sys.stdin
είναι ένα αντικείμενο που μοιάζει με αρχείο και στο οποίο μπορείτε να καλέσετε τις συναρτήσειςread
ήreadlines
αν θέλετε να διαβάσετε τα πάντα ή αν θέλετε να διαβάσετε τα πάντα και να τα χωρίσετε αυτόματα με νέα γραμμή. (Πρέπει ναimport sys
για να δουλέψει αυτό).Αν θέλετε να προτρέψετε τον χρήστη για εισαγωγή, μπορείτε να χρησιμοποιήσετε την `
raw_input
στην Python 2.X, και απλά τηνinput
στην Python 3.Αν στην πραγματικότητα θέλετε απλώς να διαβάσετε τις επιλογές της γραμμής εντολών, μπορείτε να έχετε πρόσβαση σε αυτές μέσω της λίστας sys.argv.
Πιθανόν να βρείτε αυτό το άρθρο του Wikibook για την είσοδο/έξοδο στην Python να είναι επίσης μια χρήσιμη αναφορά.
Εδώ είναι από το Learning Python:
Στο Unix, μπορείτε να το δοκιμάσετε κάνοντας κάτι τέτοιο: