Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Python Προγραμματισμός

Πώς να οικοδομήσουμε μια Parser σε Python

Στην Python , όπως και σε πολλές άλλες γλώσσες , είναι αναγκαίο να χειριστεί την είσοδο του χρήστη σε ένα πρόγραμμα που ξεκίνησε από τη γραμμή εντολών . Οι Python " sys " βιβλιοθήκη περιέχει μεγαλύτερο αριθμό των συστημάτων ειδικών παραμέτρων , συμπεριλαμβανομένων των λειτουργιών που είναι απαραίτητες για να χειριστεί τα επιχειρήματα από τη γραμμή εντολών . Η Python " getopt " βιβλιοθήκη παρέχει μια χρήσιμη μέθοδο για την ανάλυση ενός μεγάλου αριθμού επιχειρήματα της γραμμής εντολών και σημαίες σε διαφορετικές μορφές . Ρύθμιση
Η

Ανοίξτε ένα πρόγραμμα επεξεργασίας κειμένου και να αρχίσετε να γράφετε ένα νέο έγγραφο Python . Διαμορφώστε το πρόγραμμα ως εξής . Η " sys " βιβλιοθήκη περιέχει συναρτήσεις για τον χειρισμό των μεταβλητών επιχείρημα . Θα αφαιρέσει sys.argv [ 0 ], όπως είναι το όνομα του σεναρίου , σε αυτή την περίπτωση " my_program.py . " Η " __name__ " έλεγχος εξασφαλίζει ότι το script σας κλήθηκε από τη γραμμή εντολών , αντί για ένα άλλο πρόγραμμα .

# my_program.pyimport getopt , συστήματα

def main ( argv ) : # Argument parser θα πάει εδώ

αν __ name__ == " __main__ " : main ( sys . argv [ 1 ])
εικόνων Χρησιμοποιώντας getopt
Η

Καλέστε το " getopt.getopt ( ) " λειτουργία από μέσα σας " main ( ) " λειτουργία χρησιμοποιώντας την ακόλουθη σύνταξη . Για αυτό το παράδειγμα , τα επιχειρήματα για να " my_program.py " περιλαμβάνουν μια σημαία " - v" για verbose εμφάνιση , ένα " - h" ή "- help " σημαία για να εκτυπώσετε τη χρήση , και ένα " -i " . ή " - είσοδος " για να καθορίσετε ένα αρχείο εισόδου

def main ( argv ) : δοκιμάστε : επιλέγει , args = getopt.getopt ( argv , " hi : v" , [ "βοήθεια" , " είσοδο" ] ) ? εκτός από : εκτός από getopt.GetoptError , σφάλουν : str εκτύπωσης ( err ) ? errorusage # print () ? # χρήστη γραμμένες λειτουργία για να εκτυπώσετε την κατάλληλη χρήση των programsys.exit ( 2 ) ? # που defaultsverbose = False ? Αρχείο_εισόδου = Κανένας ? για το o , ένα στην επιλέγει : αν o σε ( " - h" , " - help" ) : χρήση ( ) ? sys.exit ( ) ? elif o == " - v" : verbose = True ? elif o σε ( " - i" , " - εισόδου») : = Αρχείο_εισόδου ένα ? αλλού : διεκδικούν False , " Άγνωστη επιχείρημα . "

αν ( Αρχείο_εισόδου == Κανένας ) : print " . Δεν υπάρχει αρχείο εισόδου δίνεται "? χρήσης ( ) ? sys.exit ( 2 ) ?

Η χρήση Argparser
Η

Ο " argparser " βιβλιοθήκη παρέχει ένα παρόμοιο τρόπο parsing επιχειρήματα με λιγότερο κώδικα και πιο λεπτομερή μηνύματα λάθους

argpase εισαγωγής , συστήματα

def main () : . parser = = Parser.parse_args ( ) # κώδικα για να ελέγξετε την εγκυρότητα των επιχειρημάτων
εικόνων Εκτιμήσεις
Η

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα