如何读取/处理命令行参数?

zrfyljdw  于 2021-08-20  发布在  Java
关注(0)|答案(18)|浏览(599)

我原来是一名c程序员。我见过许多技巧和“黑客”来阅读许多不同的论点。
python程序员可以通过哪些方式实现这一点?

相关的

获取/解析传递给python脚本的命令行参数的最佳方法是什么?
实现“[command][action][parameter]”风格的命令行界面?
如何在python中处理命令行参数?
如何使用python的optpass设置位置参数帮助的格式?

cigdeys3

cigdeys316#

还有 argparse stdlib模块(stdlib上的“改进” optparse 模块)。argparse简介中的示例:


# script.py

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument(
        'integers', metavar='int', type=int, choices=range(10),
         nargs='+', help='an integer in the range 0..9')
    parser.add_argument(
        '--sum', dest='accumulate', action='store_const', const=sum,
        default=max, help='sum the integers (default: find the max)')

    args = parser.parse_args()
    print(args.accumulate(args.integers))

用法:

$ script.py 1 2 3 4
4

$ script.py --sum 1 2 3 4
10
mutmk8jj

mutmk8jj17#

仅仅是为了这些原因而四处传福音,哪一个更好。。基本上:
(从链接复制)
argparse模块可以处理位置参数和可选参数,而optparse只能处理可选参数
argparse对于命令行界面应该是什么样子并不是教条式的-支持-file或/file等选项,以及必需的选项。optparse拒绝支持这些功能,更倾向于纯粹性而非实用性
argparse生成更多信息性的用法消息,包括根据参数确定的命令行用法,以及位置参数和可选参数的帮助消息。optparse模块要求您编写自己的使用字符串,并且无法显示位置参数的帮助。
argparse支持使用数量可变的命令行arg的操作,而optparse要求提前知道参数的确切数量(例如1、2或3)
argparse支持分派到子命令的解析器,而optparse需要设置 allow_interspersed_args 以及手动执行解析器分派
我个人最喜欢的是:
argparse允许类型和操作参数 add_argument() 要使用简单的可调用项指定,而optpass需要黑客类属性,如 STORE_ACTIONSCHECK_METHODS 要获得正确的参数检查

q9rjltbz

q9rjltbz18#

import sys

print("\n".join(sys.argv))
``` `sys.argv` 包含在命令行上传递给脚本的所有参数的列表。 `sys.argv[0]` 是脚本名。
基本上,

import sys
print(sys.argv[1:])

相关问题