Home Backend Development Python Tutorial Detailed explanation of the usage of Python command line parsing tool Argparse

Detailed explanation of the usage of Python command line parsing tool Argparse

Mar 10, 2017 pm 01:55 PM

This article mainly explains the usage of the Python command line parsing tool Argparse in detail. Interested friends can refer to it

Recently researching pathon's command line parsing tool, argparse, which is the Python standard library A tool recommended 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 provides a concise introduction to Python The use of Argparse, the command line parameter parsing module recommended by the standard library.

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.
Copy after login

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 example, 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()
Copy after login

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
Copy after login

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
Copy after login

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
Copy after login

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
Copy after login

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
Copy after login

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
Copy after login

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(): &#39;str&#39; and &#39;int&#39;
Copy after login

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
Copy after login

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: &#39;four&#39;
Copy after login

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.

The above is the detailed content of Detailed explanation of the usage of Python command line parsing tool Argparse. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to solve the permissions problem encountered when viewing Python version in Linux terminal? How to solve the permissions problem encountered when viewing Python version in Linux terminal? Apr 01, 2025 pm 05:09 PM

Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

How to efficiently copy the entire column of one DataFrame into another DataFrame with different structures in Python? How to efficiently copy the entire column of one DataFrame into another DataFrame with different structures in Python? Apr 01, 2025 pm 11:15 PM

When using Python's pandas library, how to copy whole columns between two DataFrames with different structures is a common problem. Suppose we have two Dats...

How to teach computer novice programming basics in project and problem-driven methods within 10 hours? How to teach computer novice programming basics in project and problem-driven methods within 10 hours? Apr 02, 2025 am 07:18 AM

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How to avoid being detected by the browser when using Fiddler Everywhere for man-in-the-middle reading? How to avoid being detected by the browser when using Fiddler Everywhere for man-in-the-middle reading? Apr 02, 2025 am 07:15 AM

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

What are regular expressions? What are regular expressions? Mar 20, 2025 pm 06:25 PM

Regular expressions are powerful tools for pattern matching and text manipulation in programming, enhancing efficiency in text processing across various applications.

How does Uvicorn continuously listen for HTTP requests without serving_forever()? How does Uvicorn continuously listen for HTTP requests without serving_forever()? Apr 01, 2025 pm 10:51 PM

How does Uvicorn continuously listen for HTTP requests? Uvicorn is a lightweight web server based on ASGI. One of its core functions is to listen for HTTP requests and proceed...

What are some popular Python libraries and their uses? What are some popular Python libraries and their uses? Mar 21, 2025 pm 06:46 PM

The article discusses popular Python libraries like NumPy, Pandas, Matplotlib, Scikit-learn, TensorFlow, Django, Flask, and Requests, detailing their uses in scientific computing, data analysis, visualization, machine learning, web development, and H

How to dynamically create an object through a string and call its methods in Python? How to dynamically create an object through a string and call its methods in Python? Apr 01, 2025 pm 11:18 PM

In Python, how to dynamically create an object through a string and call its methods? This is a common programming requirement, especially if it needs to be configured or run...

See all articles