Πώς να αναλύσετε τα ορίσματα στη γραμμή εντολών στην Python

How Parse Arguments Command Line Python



Τα ορίσματα της γραμμής εντολών χρησιμοποιούνται για τη διαβίβαση δεδομένων στο πρόγραμμα κατά τη στιγμή της εκτέλεσης του προγράμματος. Αυτή η δυνατότητα είναι διαθέσιμη στις περισσότερες δημοφιλείς γλώσσες προγραμματισμού. Αλλά η επεξεργασία των ορισμάτων της γραμμής εντολών είναι διαφορετική για διαφορετικές γλώσσες. Οι τιμές των ορισμάτων δίνονται με το όνομα του προγράμματος τη στιγμή της εκτέλεσης του προγράμματος. Η γλώσσα Python υποστηρίζει αυτήν τη δυνατότητα. Ο τρόπος ανάλυσης των επιχειρημάτων της γραμμής εντολών σε σενάριο Python εμφανίζεται σε αυτό το άρθρο.

Ανάλυση ορίσματος γραμμής εντολών χρησιμοποιώντας sys μονάδα μέτρησης

Τα ορίσματα της γραμμής εντολών αποθηκεύονται σε μια λίστα χρησιμοποιώντας sys μονάδα μέτρησης. sys.argv χρησιμοποιείται για την ανάγνωση των τιμών των ορισμάτων της γραμμής εντολών. Ο συνολικός αριθμός των ορισμάτων της γραμμής εντολών μπορεί να μετρηθεί χρησιμοποιώντας len () λειτουργία. Η χρήση αυτής της ενότητας περιγράφεται στο τμήμα του άρθρου.







Παράδειγμα 1: Ανάγνωση του αριθμού των ορισμάτων και των τιμών του ορίσματος

Δημιουργήστε ένα αρχείο με το ακόλουθο σενάριο python. Εδώ, οι τιμές του ορίσματος της γραμμής εντολών αποθηκεύονται στη μεταβλητή, argv όπως και άλλες γλώσσες. len () Η μέθοδος μετρά τον συνολικό αριθμό των ορισμάτων που έχουν περάσει κατά τη στιγμή της εκτέλεσης του σεναρίου. Οι τιμές του ορίσματος εκτυπώνονται ως πίνακας στο τέλος του σεναρίου.



# Εισαγωγή ενότητας sys
εισαγωγή sys

# Εκτύπωση συνολικού αριθμού ορισμάτων
Τυπώνω('Συνολικά ορίσματα:', λεν(sysΤοargv))
Τυπώνω('Οι τιμές των επιχειρημάτων είναι:', Π(sysΤοargv))

Παραγωγή:



Το παραπάνω σενάριο εκτελείται εδώ χρησιμοποιώντας τέσσερα ορίσματα της γραμμής εντολών. Το πρώτο όρισμα είναι το όνομα του σεναρίου και άλλα είναι αριθμητικές τιμές. Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.





Παράδειγμα 2: Ανάγνωση τιμών ορίσματος χρησιμοποιώντας τον βρόχο



Στο προηγούμενο παράδειγμα, οι τιμές του ορίσματος εκτυπώνονται ως πίνακας. Δημιουργήστε ένα αρχείο με το ακόλουθο σενάριο για να εκτυπώσετε τον τύπο της μεταβλητής ορίσματος και να εκτυπώσετε κάθε τιμή ορίσματος σε κάθε γραμμή χρησιμοποιώντας το βρόχο for.

# Εισαγωγή ενότητας sys
εισαγωγή sys

# Εκτυπώστε τον τύπο της μεταβλητής, sys.argv
Τυπώνω(τύπος(sysΤοargv))

# Εκτυπώστε κάθε όρισμα γραμμής εντολών σε κάθε γραμμή
Τυπώνω('Τα ορίσματα της γραμμής εντολών είναι:')
ΓιαΕγώσε sysΤοargv:
Τυπώνω(Εγώ)

Παραγωγή:

Το παραπάνω σενάριο εκτελείται παρέχοντας τρία ορίσματα με το όνομα του σεναρίου. Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Ανάλυση ορίσματος γραμμής εντολών χρησιμοποιώντας τη μονάδα getopt

Κορυφαία Το module χρησιμοποιείται για την ανάλυση των ορισμάτων της γραμμής εντολών με τις επιλογές. κορυφή () Η μέθοδος αυτής της ενότητας χρησιμοποιείται για την ανάγνωση των επιχειρημάτων. Αυτή η μέθοδος έχει τρία επιχειρήματα. Τα δύο πρώτα ορίσματα είναι υποχρεωτικά και το τελευταίο όρισμα είναι προαιρετικό. Οι χρήσεις αυτών των επιχειρημάτων δίνονται παρακάτω.

args: Περιέχει το όρισμα που έχει ληφθεί από το όρισμα της γραμμής εντολών.

short_option: Μπορεί να είναι οποιοδήποτε γράμμα που περνά με το επιχείρημα.

long_option: Χρησιμοποιείται για τον καθορισμό μεγάλων επιλογών με δύο μέρη. Αυτά είναι το όνομα και η τιμή της επιλογής.

Σύνταξη: getopt.getopt (args, short_option, [long_option])

Παράδειγμα 3: Ανάγνωση τιμών ορίσματος χρησιμοποιώντας σύντομες επιλογές getopt

στην κορυφή Η ενότητα περιέχει περισσότερες δυνατότητες από sys μονάδα μέτρησης. Το ακόλουθο παράδειγμα δείχνει πώς μπορούν να χρησιμοποιηθούν σύντομες επιλογές κορυφή () μέθοδος. argv η μεταβλητή θα αποθηκεύσει τα ορίσματα της γραμμής εντολών παραλείποντας το όνομα του σεναρίου. Στη συνέχεια, δύο επιλογές ορίζονται στο κορυφή () μέθοδο που μπορεί να χρησιμοποιηθεί με το όρισμα κατά την εκτέλεση. Εάν παρουσιαστεί κάποιο σφάλμα, θα εμφανιστεί ένα μήνυμα σφάλματος.

# Εισαγωγή μονάδας getopt
εισαγωγή στην κορυφή

# Εισαγωγή ενότητας sys
εισαγωγή sys

# Αποθήκευση μεταβλητής ορίσματος που παραλείπει το όνομα του σεναρίου
argv= sysΤοargv[1:]

προσπαθήστε:
# Ορίστε τις σύντομες επιλογές getopt
επιλογές,αψίδες= στην κορυφήΤοστην κορυφή(argv, 'x: y:')

# εκτυπώστε τις επιλογές και το όρισμα
Τυπώνω(επιλογές)
Τυπώνω(αψίδες)

εκτός στην κορυφήΤοGetoptError:

# Εκτυπώστε το μήνυμα σφάλματος εάν παρέχεται η λάθος επιλογή
Τυπώνω('Παρέχεται λάθος επιλογή')

# Τερματισμός του σεναρίου
sysΤοέξοδος(2)

Παραγωγή:

Εκτελέστε το σενάριο χωρίς κανένα επιχείρημα, επιχειρήματα με σωστές επιλογές και επιχειρήματα με λάθος επιλογή.

Παράδειγμα 4: Ανάγνωση τιμών ορίσματος χρησιμοποιώντας σύντομες και μεγάλες επιλογές getopt

Αυτό το παράδειγμα δείχνει πώς μπορούν να χρησιμοποιηθούν τόσο σύντομες όσο και μεγάλες επιλογές με τις τιμές ορίσματος. Θα προσθέσει δύο αριθμούς όταν '-προς το' ή '-Προσθήκη' θα χρησιμοποιηθεί ως επιλογή και θα αφαιρέσει δύο αριθμούς όταν « -μικρό' ή ' -υπο' θα χρησιμοποιηθεί ως επιλογή κατά την εκτέλεση.

# Εισαγωγή μονάδας getopt
εισαγωγή στην κορυφή

# Εισαγωγή ενότητας sys
εισαγωγή sys

# Αποθήκευση μεταβλητής ορίσματος που παραλείπει το όνομα του σεναρίου
argv= sysΤοargv[1:]

# Αρχικοποίηση μεταβλητής αποτελέσματος
αποτέλεσμα=0

προσπαθήστε:

# Ορίστε getopt σύντομες και μεγάλες επιλογές
επιλογές,αψίδες= στην κορυφήΤοστην κορυφή(sysΤοargv[1:], 'όπως και', ['προσθήκη =','υπο ='])

# Διαβάστε κάθε επιλογή χρησιμοποιώντας το βρόχο
Γιαεπιλέγω,θυμωμένοςσεεπιλογές:
# Υπολογίστε το άθροισμα εάν η επιλογή είναι -a ή -προσθήκη
ανεπιλέγωσε ('-προς το', '--Προσθήκη'):
αποτέλεσμα= int(argv[1])+int(argv[2])

# Υπολογίστε την αναρρόφηση αν η επιλογή είναι -s ή -sub
elifεπιλέγωσε ('-μικρό', '--υπο'):
αποτέλεσμα= int(argv[1])-int(argv[2])

Τυπώνω('Αποτέλεσμα =',αποτέλεσμα)

εκτός στην κορυφήΤοGetoptError:

# Εκτυπώστε το μήνυμα σφάλματος εάν παρέχεται η λάθος επιλογή
Τυπώνω('Παρέχεται λάθος επιλογή')

# Τερματισμός του σεναρίου
sysΤοέξοδος(2)

Παραγωγή:

Εκτελέστε το σενάριο χωρίς ορίσματα και επιλογές, επιχειρήματα με επιλογή «-α», επιχειρήματα με επιλογή «-σ» και επιχειρήματα με λάθος επιλογή.

Ανάλυση ορίσματος γραμμής εντολών με χρήση λειτουργικής μονάδας argparse

Η ενότητα Argparse περιέχει πολλές επιλογές για την ανάγνωση ορισμάτων της γραμμής εντολών. Οι προεπιλεγμένες τιμές ορίσματος, το όρισμα με τον τύπο δεδομένων, τα ορίσματα θέσης, το μήνυμα βοήθειας κ.λπ. μπορούν να παρέχονται από αυτήν την ενότητα.

Παράδειγμα 5: Ανάγνωση ορισμάτων γραμμής εντολών χρησιμοποιώντας argparse

Το ακόλουθο παράδειγμα δείχνει τη χρήση του argparse μονάδα για την ανάγνωση του ορίσματος της γραμμής εντολών. Εδώ, ορίζονται δύο επιλογές για την ανάγνωση των ορισμάτων της γραμμής εντολών. Αυτά είναι «-N» ή «–name» και «-E» ή «–email». Εάν ο χρήστης παρέχει κάποιο λάθος επιχείρημα, τότε θα εμφανίσει ένα σφάλμα με ένα μήνυμα χρήσης. Εάν ο χρήστης παρέχει σωστές επιλογές με τα ορίσματα, τότε θα εμφανίσει τις τιμές του ορίσματος. εάν ο χρήστης τρέξει το σενάριο με την επιλογή «–help», τότε θα παράσχει το απαραίτητο μήνυμα για την εκτέλεση του σεναρίου.

# Εισαγωγή μονάδας argparse
εισαγωγήargparse

# Εισαγωγή ενότητας sys
εισαγωγή sys

# Δήλωση συνάρτησης για να ορίσετε ορίσματα γραμμής εντολών
defεπιλογές ανάγνωσης(αψίδες=sysΤοargv[1:]):
αναλυτής =argparse.ArgumentParser(περιγραφή='Οι λίστες εντολών ανάλυσης'.)
αναλυτήςΤοadd_argument('-ν', '--όνομα', βοήθεια='Πληκτρολογήστε το όνομά σας.')
αναλυτήςΤοadd_argument('-Και', '--ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ', βοήθεια='Πληκτρολογήστε το email σας.')
επιλέγει= αναλυτήςΤοparse_args(αψίδες)
ΕΠΙΣΤΡΟΦΗεπιλέγει

# Καλέστε τη συνάρτηση για να διαβάσετε τις τιμές του ορίσματος
επιλογές=επιλογές ανάγνωσης(sysΤοargv[1:])
Τυπώνω(επιλογές.όνομα)
Τυπώνω(επιλογές.ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ)

Παραγωγή:

Εκτελέστε το σενάριο με λάθος επιλογή, σωστή επιλογή και επιλογή βοήθειας.

Συμπέρασμα:

Διάφοροι τρόποι ανάγνωσης επιχειρημάτων γραμμής εντολών εξηγούνται σε αυτό το σεμινάριο χρησιμοποιώντας τρεις ενότητες python. Ελπίζω ότι αυτό το σεμινάριο θα βοηθήσει τον κωδικοποιητή που θέλει να διαβάσει δεδομένα χρησιμοποιώντας ορίσματα γραμμής εντολών σε python.

Δείτε το βίντεο του συγγραφέα: εδώ