使用 sys.argv 通过终端输入
Using sys.argv for input through Terminal
我写了一个 Python 脚本,我现在正试图通过命令行进入 运行。它由一个函数组成,该函数接受一个强制参数和一些可选参数。
def main(input_folder, iterations = 1000, probability_cutoff = - 40 , threshold = 10): ...
现在我正尝试通过命令行使其可执行,如下所示:
if __name__ == "__main__":
main(sys.argv[1])
只要我只输入一个参数,这个方法就很好用;但我不知道如何接受 sys.argv
作为列表提供的附加可选输入。
- 有没有一种简单的方法可以用这种方法做到这一点?
- 或者是否需要使用额外的模块,例如
argparse?
- 我也尝试将关键字参数输入函数,但是
也无法做到这一点 - 这是一种可行的方法吗?
我正在 Mac 上使用 Python 2.7。非常感谢任何帮助!
我总是使用 argparse,因为它可以很好地处理错误,将字符串转换为整数或打开文件,并清楚地记录选项。但是,这应该可以满足您的要求:
if __name__ == "__main__":
main(*sys.argv[1:])
我写了一个 Python 脚本,我现在正试图通过命令行进入 运行。它由一个函数组成,该函数接受一个强制参数和一些可选参数。
def main(input_folder, iterations = 1000, probability_cutoff = - 40 , threshold = 10): ...
现在我正尝试通过命令行使其可执行,如下所示:
if __name__ == "__main__":
main(sys.argv[1])
只要我只输入一个参数,这个方法就很好用;但我不知道如何接受 sys.argv
作为列表提供的附加可选输入。
- 有没有一种简单的方法可以用这种方法做到这一点?
- 或者是否需要使用额外的模块,例如 argparse?
- 我也尝试将关键字参数输入函数,但是 也无法做到这一点 - 这是一种可行的方法吗?
我正在 Mac 上使用 Python 2.7。非常感谢任何帮助!
我总是使用 argparse,因为它可以很好地处理错误,将字符串转换为整数或打开文件,并清楚地记录选项。但是,这应该可以满足您的要求:
if __name__ == "__main__":
main(*sys.argv[1:])