问题:如何使用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)