


Detailed introduction to Python command line parsing tool Argparse
Recently I am studying pathon’s command line parsing tool, argparse, which is a tool recommended in the Python standard library for writing command line programs.
I used to do UI programs. Today I tried the command line program. It feels very good. I don’t have to spend a lot of time studying interface problems, especially in vc++, which is particularly cumbersome.
Now we use python to implement the command line. For the core computing module, we can write our own extension library in c, and the effect is quite good.
I learned argparse, found an article toturial in the official documentation, and briefly translated it.
http://docs.python.org/2/howto/argparse.html#id1
Argparse Tutorial
This tutorial briefly introduces the commands recommended by the Python standard library. Row parameter parsing module - use of Argparse.
1. Basic concepts
In this tutorial, we use a common ls command to demonstrate the function of argparse.
$ ls cpython devguide prog.py pypy rm-unused-function.patch $ ls pypy ctypes_configure demo dotviewer include lib_pypy lib-python ... $ ls -l total 20 drwxr-xr-x 19 wena wena 4096 Feb 18 18:51 cpython drwxr-xr-x 4 wena wena 4096 Feb 8 12:04 devguide -rwxr-xr-x 1 wena wena 535 Feb 19 00:05 prog.py drwxr-xr-x 14 wena wena 4096 Feb 7 00:59 pypy -rw-r--r-- 1 wena wena 741 Feb 18 01:01 rm-unused-function.patch $ ls --help Usage: ls [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
From the above four commands, we can understand the following basic concepts:
1), the ls command has no parameters It can also be run, and by default prints out all the contents in the current directory.
2) If we want it to display more content, then we need to give it more parameters. In this case, we want to display a different directory, pypy. What we have done is specify the common positional argument, named so because the program needs to decide what to do based on the position of the argument in the command line. This concept is closer to the command cp. Its usage is cp src dest. src represents the file you want to copy, and dest represents where you want to copy the file.
3) Now, I want to change the behavior of the program. In our case, I want to display the westward information of the file instead of just the file name. The parameter -l is the optional argument we know (optinal argument)
4), and the last sentence is to display the help document. A snippet that you can use to learn how to use a command you've never used before.
2. Basic understanding
We start with a basic program (it does nothing)
import argparse parser = argparse.ArgumentParser() parser.parse_args()
Running results:
$ python prog.py $ python prog.py --help usage: prog.py [-h] optional arguments: -h, --help show this help message and exit $ python prog.py --verbose usage: prog.py [-h] prog.py: error: unrecognized arguments: --verbose $ python prog.py foo usage: prog.py [-h] prog.py: error: unrecognized arguments: foo
Result analysis:
1) If you run this program without giving parameters, you will not get any result.
2) The second naming shows the benefits of using argparse. You did nothing but got a good help message.
3) We can get a good help message without manually setting the --help parameter. But if other parameters (such as foo) are given, an error will be generated.
3. Positional parameters
First, give an example:
import argparse parser = argparse.ArgumentParser() parser.add_argument("echo") args = parser.parse_args() print args.echo
Running result:
$ python prog.py usage: prog.py [-h] echo prog.py: error: the following arguments are required: echo $ python prog.py --help usage: prog.py [-h] echo positional arguments: echo optional arguments: -h, --help show this help message and exit $ python prog.py foo foo
Result analysis:
This time, we added an add_argument() method to set the command line parameters acceptable to the program.
Now to run the program, you must set a parameter.
The parse_args() method actually returns some data from our command line parameters, in the above example it is echo
This "magic"-like process is automatically completed by argparse.
Although the automatically generated help information is beautifully displayed, we still cannot know what it does based only on the echo parameter. So, we added a few things to make it more useful.
import argparse parser = argparse.ArgumentParser() parser.add_argument("echo", help="echo the string you use here") args = parser.parse_args() print args.echo
Run result:
$ python prog.py -h usage: prog.py [-h] echo positional arguments: echo echo the string you use here optional arguments: -h, --help show this help message and exit
On this basis, let’s make more changes One point: (calculate the square of the input parameter square)
import argparse parser = argparse.ArgumentParser() parser.add_argument("square", help="display a square of a given number") args = parser.parse_args() print args.square**2
The following is the running result:
$ python prog.py 4 Traceback (most recent call last): File "prog.py", line 5, in <module> print args.square**2 TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
This program does not run correctly because argparse will treat the input as a string, so we need to set its type: (type=int)
import argparse parser = argparse.ArgumentParser() parser.add_argument("square", help="display a square of a given number", type=int) args = parser.parse_args() print args.square**2
The following is the running result:
$ python prog.py 4 16 $ python prog.py four usage: prog.py [-h] square prog.py: error: argument square: invalid int value: 'four'
Now, this program can run smoothly and can handle some incorrect inputs.
The above is a simple tutorial on using the Python command line parsing tool Argparse. I hope it will be helpful to everyone.
For more detailed introduction to the Python command line parsing tool Argparse and related articles, please pay attention to the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Python is suitable for data science, web development and automation tasks, while C is suitable for system programming, game development and embedded systems. Python is known for its simplicity and powerful ecosystem, while C is known for its high performance and underlying control capabilities.

Python excels in gaming and GUI development. 1) Game development uses Pygame, providing drawing, audio and other functions, which are suitable for creating 2D games. 2) GUI development can choose Tkinter or PyQt. Tkinter is simple and easy to use, PyQt has rich functions and is suitable for professional development.

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

Python is better than C in development efficiency, but C is higher in execution performance. 1. Python's concise syntax and rich libraries improve development efficiency. 2.C's compilation-type characteristics and hardware control improve execution performance. When making a choice, you need to weigh the development speed and execution efficiency based on project needs.

Pythonlistsarepartofthestandardlibrary,whilearraysarenot.Listsarebuilt-in,versatile,andusedforstoringcollections,whereasarraysareprovidedbythearraymoduleandlesscommonlyusedduetolimitedfunctionality.

Python excels in automation, scripting, and task management. 1) Automation: File backup is realized through standard libraries such as os and shutil. 2) Script writing: Use the psutil library to monitor system resources. 3) Task management: Use the schedule library to schedule tasks. Python's ease of use and rich library support makes it the preferred tool in these areas.

Is it enough to learn Python for two hours a day? It depends on your goals and learning methods. 1) Develop a clear learning plan, 2) Select appropriate learning resources and methods, 3) Practice and review and consolidate hands-on practice and review and consolidate, and you can gradually master the basic knowledge and advanced functions of Python during this period.
