解析命令行参数

时间:2014-02-12 21:35:45

标签: python parsing command-line command-line-arguments

有些人可能知道这个脚本,它被称为hash-identifier。运行时,系统会提示用户输入哈希值。我想将哈希作为命令行参数传递,以便脚本可以像这样执行:

hash-identifier d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f

我发现我需要导入sys和getopt,但之前我从未使用过python,所以任何建议都会有所帮助。

3 个答案:

答案 0 :(得分:2)

首选方法是使用argparse:

#!/usr/bin/env python
import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Does something with a hash");
    parser.add_argument("hash", metavar="HASH", help="the hash to do things with?");

    args = parser.parse_args();

    hash = args.hash;

    # Use the hash...
    print(hash);

但是使用argparse可能对你的需求有点过分,你可能更容易做到这一点:

#!/usr/bin/env python

import sys

if __name__ == "__main__":
    if len(sys.argv) != 2: # first is program name, second is argument
        print("USAGE: %s HASH"%(sys.argv[0],));
        sys.exit();
    hash = sys.argv[1];

    # Use the hash...
    print(hash);

答案 1 :(得分:0)

好的,在我导入sys之后,我唯一需要做的就是将sys.argv传递给正在打印的变量。例如:

variable = sys.argv
print variable

答案 2 :(得分:0)

您可以使用sys.argv[0]获取脚本的第一个命令行参数。如果您想要更多选项,可以使用argparse模块。