通过Windows中的argparse通过cmd行执行Python3功能

时间:2015-06-26 12:37:39

标签: python-3.x module

问题:如何使用argparse包从Windows命令行运行我的Python3模块?背景和代码示例如下。

我正在尝试编写一个可以从Windows命令行运行的函数。目前,我正在使用Spyder IDE在Windows 7上使用Python 3进行开发。我没有权限修改任何Windows环境变量。另外,我的函数将使用关键字参数,如果没有提供,则全部设置为默认值 - 我希望用户能够使用有序参数调用函数(即不在函数调用中写入关键字)或者使用无序参数(即通过在函数调用中编写关键字,例如do_that_thing(bar='hello', foo='goodbye'),参见下面的示例)。

我将命令行输入放在命令行选项下的Spyder运行设置对话框中:'hello' 'goodbye'。我在Spyder控制台中收到的错误消息是:can't open file

我已经真诚地在本网站和其他网站上查阅argparse和其他问题的文档。你能否至少验证一下我之前的描述是否正确使用了argparse?我在想我的问题是我无法修改系统路径。虽然我认为Spyder允许我在某种shell中运行它,因此不需要修改系统变量。谢谢!

import argparse

def do_that_thing(foo=None, bar=None, cat=None):

    if foo is not None:
        print(foo)
    if bar is not None:
        print(bar)
    if cat is not None:
        print(cat)

if __name__ == '__main__':

    # Extract user inputs
    parser = argparse.ArgumentParser()
    # Add arguments
    parser.add_argument('foo', help='This is foo!', nargs='?', default=None)
    parser.add_argument('bar', help='This is bar!', nargs='?', default=None)
    parser.add_argument('cat', help='The superior species!', nargs='?', default=None)

    # Get args
    args = parser.parse_args()

    # Call function
    do_that_thing(args.foo, args.bar, args.cat)

0 个答案:

没有答案