Θέλετε να δημιουργήσετε τα δικά σας προγράμματα γραμμής εντολών της Python, αλλά να τα βρείτε πάρα πολύ σκληρά;  Χρησιμοποιήστε το κλικ, ένα χρήσιμο εργαλείο Python για τον εξορθολογισμό του κώδικα σας.

Πώς να δημιουργήσετε τα δικά σας προγράμματα γραμμής εντολών στην Python With Click

Διαφήμιση Το κλικ είναι ένα πακέτο Python για την εγγραφή διεπαφών γραμμής εντολών. Παράγει όμορφη τεκμηρίωση για εσάς και σας επιτρέπει να δημιουργήσετε διεπαφές γραμμής εντολών σε μία μόνο γραμμή κώδικα. Με λίγα λόγια: είναι φοβερό και μπορεί να σας βοηθήσει να πάρετε τα προγράμματά σας στο επόμενο επίπεδο. Δείτε πώς μπορείτε να το χρησιμοποιήσετε για να ζωντανέψετε

Διαφήμιση

Το κλικ είναι ένα πακέτο Python για την εγγραφή διεπαφών γραμμής εντολών. Παράγει όμορφη τεκμηρίωση για εσάς και σας επιτρέπει να δημιουργήσετε διεπαφές γραμμής εντολών σε μία μόνο γραμμή κώδικα. Με λίγα λόγια: είναι φοβερό και μπορεί να σας βοηθήσει να πάρετε τα προγράμματά σας στο επόμενο επίπεδο.

Δείτε πώς μπορείτε να το χρησιμοποιήσετε για να ζωντανέψετε τα έργα του Python.

Γραφήματα γραμμής εντολών χωρίς κλικ

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

Δεν υπάρχει τίποτα λάθος να γράφετε τον δικό σας κώδικα και αυτό είναι ένας πολύ καλός τρόπος για να μάθετε την Python, αλλά το Click σας επιτρέπει να ακολουθήσετε τις αρχές "Μην επαναλάβετε τον εαυτό σας" (DRY). Χωρίς κλικ, θα γράψετε κώδικα που είναι εύθραυστος και απαιτεί μεγάλη συντήρηση όποτε συμβαίνουν τυχόν αλλαγές.

Ακολουθεί μια απλή διεπαφή γραμμής εντολών που κωδικοποιείται χωρίς κλικ:

 import sys import random def do_work(): """ Function to handle command line usage""" args = sys.argv args = args[1:] # First element of args is the file name if len(args) == 0: print('You have not passed any commands in!') else: for a in args: if a == '--help': print('Basic command line program') print('Options:') print(' --help -> show this basic help menu.') print(' --monty -> show a Monty Python quote.') print(' --veg -> show a random vegetable') elif a == '--monty': print('What\'s this, then? "Romanes eunt domus"? People called Romanes, they go, the house?') elif a == '--veg': print(random.choice(['Carrot', 'Potato', 'Turnip'])) else: print('Unrecognised argument.') if __name__ == '__main__': do_work() 

Παράδειγμα διεπαφής γραμμής εντολών Python

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

Εδώ είναι η ίδια λογική με το κλικ:

 import click import random @click.command() @click.option('--monty', default=False, help='Show a Monty Python quote.') @click.option('--veg', default=False, help='Show a random vegetable.') def do_work(monty, veg): """ Basic Click example will follow your commands""" if monty: print('What\'s this, then? "Romanes eunt domus"? People called Romanes, they go, the house?') if veg: print(random.choice(['Carrot', 'Potato', 'Turnip'])) if __name__ == '__main__': do_work() 

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

Python Κάντε κλικ στην αυτόματη οθόνη βοήθειας

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

Ξεκινώντας με κλικ για Python

Πριν χρησιμοποιήσετε το κλικ, ίσως θέλετε να διαμορφώσετε ένα εικονικό περιβάλλον Μάθετε πώς να χρησιμοποιείτε το εικονικό περιβάλλον Python Μάθετε πώς να χρησιμοποιείτε το εικονικό περιβάλλον Python Είτε είστε έμπειρος προγραμματιστής της Python είτε απλά αρχίζετε να μαθαίνετε πώς να ρυθμίσετε ένα εικονικό περιβάλλον είναι απαραίτητο για κάθε έργο της Python. Διαβάστε περισσότερα . Αυτό θα σταματήσει τα πακέτα Python που είναι αντιφατικά με το Python του συστήματός σας ή άλλα έργα στα οποία ενδέχεται να εργάζεστε. Θα μπορούσατε επίσης να δοκιμάσετε την Python στον περιηγητή σας Δοκιμάστε την Python στο πρόγραμμα περιήγησής σας Με αυτά τα δωρεάν online διαδραστικά κελύφη Δοκιμάστε την Python στον περιηγητή σας Με αυτά τα δωρεάν διαδικτυακά κελύφη αλληλογραφίας Είτε περνάτε από αυτά τα παραδείγματα της Python είτε εξετάζετε τα βασικά των συστοιχιών και των λιστών, δοκιμάστε τον κώδικα ακριβώς στο πρόγραμμα περιήγησής σας. Εδώ είναι οι καλύτεροι online Python διερμηνείς που έχουμε βρει. Διαβάστε περισσότερα εάν θέλετε να παίξετε με την Python και Click.

Τέλος, βεβαιωθείτε ότι εκτελείτε την έκδοση Python 3. Είναι δυνατό να χρησιμοποιήσετε το στοιχείο Κάντε κλικ με την έκδοση Python 2, αλλά αυτά τα παραδείγματα βρίσκονται σε Python 3. Μάθετε περισσότερα σχετικά με τις διαφορές μεταξύ Python 2 και Python 3.

Αφού ετοιμαστείτε, εγκαταστήστε το κλικ από τη γραμμή εντολών χρησιμοποιώντας το PIP (πώς να εγκαταστήσετε το PIP για Python):

 pip install click 

Γράφοντας το πρώτο σας πρόγραμμα κλικ

Σε ένα πρόγραμμα επεξεργασίας κειμένου, ξεκινήστε με την εισαγωγή του Κλικ:

 import click 

Μόλις εισαγάγετε, δημιουργήστε μια μέθοδο και ένα κύριο σημείο εισόδου. Ο οδηγός Python OOP μας καλύπτει με μεγαλύτερη λεπτομέρεια, αλλά παρέχει ένα χώρο για την αποθήκευση του κώδικα σας και έναν τρόπο για να ξεκινήσει η λειτουργία της Python:

 import click import random def veg(): """ Basic method will return a random vegetable""" print(random.choice(['Carrot', 'Potato', 'Turnip', 'Parsnip'])) if __name__ == '__main__': veg() 

Αυτό το πολύ απλό σενάριο θα εξάγει τυχαία λαχανικά. Ο κώδικας μπορεί να φαίνεται διαφορετικός, αλλά αυτό το απλό παράδειγμα είναι τέλειο για να συνδυαστεί με το κλικ.

Αποθηκεύστε αυτό ως click_example.py και, στη συνέχεια, εκτελέστε το στη γραμμή εντολών (μετά την πλοήγηση στην τοποθεσία του):

 python click_example.py 

Θα πρέπει να δείτε ένα τυχαίο όνομα λαχανικών. Ας βελτιώσουμε τα πράγματα προσθέτοντας κλικ. Αλλάξτε τον κώδικα σας για να συμπεριλάβετε τους διακοσμητές κλικ και έναν βρόχο για :

 @click.command() @click.option('--total', default=3, help='Number of vegetables to output.') def veg(total): """ Basic method will return a random vegetable""" for number in range(total): print(random.choice(['Carrot', 'Potato', 'Turnip', 'Parsnip'])) if __name__ == '__main__': veg() 

Κατά τη λειτουργία, θα δείτε ένα τυχαίο λαχανικό που εμφανίζεται τρεις φορές.

Ας καταρρίψουμε αυτές τις αλλαγές. Ο διακοσμητής @ click.command () ρυθμίζει το στοιχείο Κάντε κλικ για να εργαστείτε με τη λειτουργία που ακολουθεί αμέσως τον διακοσμητή. Σε αυτή την περίπτωση, αυτή είναι η λειτουργία veg () . Θα χρειαστείτε αυτό για κάθε μέθοδο που θέλετε να χρησιμοποιήσετε με το κλικ.

Ο διακοσμητής @ click.option ρυθμίζει το κλικ για να αποδεχθεί παραμέτρους από τη γραμμή εντολών, τις οποίες θα περάσει στη μέθοδο σας. Υπάρχουν τρία επιχειρήματα που χρησιμοποιούνται εδώ:

  1. -Total: Αυτό είναι το όνομα γραμμής εντολών για το συνολικό όρισμα.
  2. default: Εάν δεν καθορίσετε το συνολικό όρισμα κατά τη χρήση του σεναρίου σας, το Click θα χρησιμοποιήσει την τιμή από προεπιλογή.
  3. βοήθεια: Μια σύντομη πρόταση που εξηγεί πώς να χρησιμοποιήσετε το πρόγραμμά σας.

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

 python click_example.py --total 10 

Ρυθμίζοντας το σύνολο 10 από τη γραμμή εντολών, το σενάριό σας θα εκτυπώσει δέκα τυχαία λαχανικά.

Αν περάσετε στη σημαία -help, θα δείτε μια ωραία σελίδα βοήθειας μαζί με τις επιλογές που μπορείτε να χρησιμοποιήσετε:

 python click_example.py --help 

Python Κάντε κλικ στην βοήθεια

Προσθήκη περισσότερων εντολών

Είναι δυνατόν να χρησιμοποιήσετε πολλούς διακοσμητές κλικ στην ίδια λειτουργία. Προσθέστε μια άλλη επιλογή κλικ στη λειτουργία veg :

 @click.option('--gravy', default=False, help='Append "with gravy" to the vegetables.') 

Μην ξεχάσετε να το περάσετε στη μέθοδο:

 def veg(total, gravy): 

Τώρα όταν τρέχετε το αρχείο σας, μπορείτε να περάσετε στη σημαία της σάρκας :

 python click_example.py --gravy y 

Η οθόνη βοήθειας άλλαξε επίσης:

Python Κάντε κλικ στην οθόνη βοήθειας

Εδώ είναι ο πλήρης κώδικας (με κάποια μικρή refactoring για την καθαρότητα):

 import click import random @click.command() @click.option('--gravy', default=False, help='Append "with gravy" to the vegetables.') @click.option('--total', default=3, help='Number of vegetables to output.') def veg(total, gravy): """ Basic method will return a random vegetable""" for number in range(total): choice = random.choice(['Carrot', 'Potato', 'Turnip', 'Parsnip']) if gravy: print(f'{choice} with gravy') else: print(choice) if __name__ == '__main__': veg() 

Ακόμα περισσότερες επιλογές κλικ

Αφού γνωρίσετε τα βασικά, μπορείτε να αρχίσετε να εξετάζετε πιο σύνθετες επιλογές κλικ. Σε αυτό το παράδειγμα, θα μάθετε πώς να περάσετε σε διάφορες τιμές σε ένα μόνο επιχείρημα, το οποίο το Click θα μετατρέψει σε μια πλειάδα. Μπορείτε να μάθετε περισσότερα σχετικά με τις πλειάδες στον οδηγό μας στο λεξικό Python.

Δημιουργήστε ένα νέο αρχείο που ονομάζεται click_example_2.py . Εδώ είναι ο κωδικός εκκίνησης που χρειάζεστε:

 import click import random @click.command() def add(): """ Basic method will add two numbers together.""" pass if __name__ == '__main__': add() 

Δεν υπάρχει τίποτα νέο εδώ. Η προηγούμενη ενότητα εξηγεί λεπτομερώς αυτόν τον κώδικα. Προσθέστε ένα @ click.option που ονομάζεται αριθμοί :

 @click.option('--numbers', nargs=2, type=int, help='Add two numbers together.') 

Ο μόνος νέος κώδικας εδώ είναι οι επιλογές nargs = 2 και type = int . Αυτό λέει το κουμπί Κάντε κλικ για να αποδεχθείτε δύο τιμές για την επιλογή αριθμών και πρέπει να είναι και οι δύο τύπου ακέραιων αριθμών. Μπορείτε να το αλλάξετε σε οποιοδήποτε αριθμό ή (έγκυρο) τύπο δεδομένων που θέλετε.

Τέλος, αλλάξτε τη μέθοδο προσθήκης για να αποδεχθείτε το όρισμα αριθμών και κάντε κάποια επεξεργασία μαζί τους:

 def add(numbers): """ Basic method will add two numbers together.""" result = numbers[0] + numbers[1] print(f'{numbers[0]} + {numbers[1]} = {result}') 

Κάθε τιμή που περάσατε είναι προσβάσιμη μέσω του αντικειμένου αριθμών . Δείτε πώς να το χρησιμοποιήσετε στη γραμμή εντολών:

 python click_example_2.py --numbers 1 2 

Python Κάντε κλικ στο αποτέλεσμα nargs

Κάντε κλικ στην επιλογή Λύση για βοηθητικά προγράμματα Python

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

Αν ψάχνετε για κάποια προγράμματα Python για να ασκήσετε τις νέες ικανότητες που έχετε βρει, γιατί να μην μάθετε πώς να ελέγχετε ένα Arduino με την Python Πώς να προγραμματίσετε και να ελέγξετε ένα arduino με την Python Πώς να προγραμματίσετε και να ελέγξετε ένα Arduino με την Python Δυστυχώς, για να προγραμματίσετε απευθείας ένα Arduino σε Python, αλλά μπορείτε να το ελέγξετε μέσω USB χρησιμοποιώντας ένα πρόγραμμα Python. Δείτε πώς. Διαβάστε περισσότερα ή πώς να διαβάζετε και να γράφετε στα Φύλλα Google με την Python Πώς να διαβάσετε και να γράψετε στα φύλλα του Google με την Python Πώς να διαβάσετε και να γράψετε στα φύλλα του Google Με την Python, η Python μπορεί να φαίνεται περίεργη και ασυνήθιστη, ωστόσο είναι εύκολη η εκμάθηση και η χρήση. Σε αυτό το άρθρο, θα σας δείξω πώς να διαβάζετε και να γράφετε στα Φύλλα Google χρησιμοποιώντας τη Python. Διαβάστε περισσότερα ? Κάθε ένα από αυτά τα έργα θα ήταν τέλειο για τη μετατροπή στο Click!

Εξερευνήστε περισσότερα σχετικά με: Κωδικοποίηση Tutorials, Python.