Python命令行参数

时间:2020-02-23 14:42:31  来源:igfitidea点击:

Python命令行参数是执行它们时传递给脚本的输入参数。
几乎所有的编程语言都支持命令行参数。
然后,我们还有命令行选项可以为程序设置一些特定选项。

Python命令行参数

有很多选项可以读取python命令行参数。
三种最常见的是:

  • Python sys.argv
  • Python getopt模块
  • Python argparse模块

让我们看一个简单的程序,以学习如何阅读和使用python命令行参数。

Python sys模块

Python sys模块将命令行参数存储在一个列表中,我们可以使用sys.argv来访问它。
这是将命令行参数读取为String的非常有用且简单的方法。
让我们看一个使用python sys模块读取和打印命令行参数的简单示例。

import sys

print(type(sys.argv))
print('The command line arguments are:')
for i in sys.argv:
  print(i)

下图显示了以上程序的示例运行的输出。

sys模块中还有许多其他有用的功能,请在python sys模块中详细阅读它们。

Python getopt模块

Python的getopt模块与C的getopt()函数用于解析命令行参数非常相似。

Python getopt模块在解析命令行参数时非常有用,我们也希望用户也输入一些选项。
让我们看一个简单的例子来理解这一点。

import getopt
import sys

argv = sys.argv[1:]
try:
  opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file='])
  print(opts)
  print(args)
except getopt.GetoptError:
  # Print a message or do something useful
  print('Something went wrong!')
  sys.exit(2)

上面的示例非常简单,但是我们可以轻松地将其扩展为执行各种操作。
例如,如果通过了帮助选项,则打印一些用户友好的消息并退出。
其中getopt模块将自动分析选项值并映射它们。

Python argparse模块

Python argparse模块是解析命令行参数的首选方法。
它提供了很多选项,例如位置参数,参数的默认值,帮助消息,指定参数的数据类型等。
以最简单的形式,我们可以像下面这样使用它。

import argparse

parser = argparse.ArgumentParser()
parser.parse_args()