如何在命令行上以不同的输入方式运行python程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在命令行上以不同的输入方式运行python程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2111字,纯文字阅读大概需要4分钟。
内容图文
![如何在命令行上以不同的输入方式运行python程序](/upload/InfoBanner/zyjiaocheng/658/101eb4ac824a43c1bfd58daa2200e07b.jpg)
如果用户不知道c,并且a = 3和b = 2,我想这样调用程序:
$python my_program 3 2
如果用户知道c并且c = 9,我想这样调用程序:
$python my_program -c 6
由于由c = results.a results.b表示的计算大约需要30分钟完成,因此我希望能够在c已知的情况下跳过它.
这可能吗?我在下面有两个不同的代码示例,但这并不是我想要的.
代码示例1
import argparse
def my_function():
if results.c == 0:
c = results.a + results.b
d = c + 5
else:
d = results.c + 5
if __name__=='__main__':
parser = argparse.ArgumentParser()
parser.add_argument('a', action="store", type=int)
parser.add_argument('b', action="store", type=int)
parser.add_argument('-c', action="store", default=0, type=int)
results = parser.parse_args()
my_function()
我的代码示例1必需的调用为:
$python my_program 3 2
要么
$python my_program 3 2 -c 6
代码示例2
import argparse
def my_function():
if results.c == 0:
c = results.a + results.b
d = c + 5
else:
d = results.c + 5
if __name__=='__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-a', action="store", default=0, type=int)
parser.add_argument('-b', action="store", default=0, type=int)
parser.add_argument('-c', action="store", default=0, type=int)
results = parser.parse_args()
my_function()
我的代码示例2必需的调用为:
$python my_program -a 3 -b 2
要么
$python my_program -c 6
感谢您的任何帮助.祝你有美好的一天.
解决方法:
您必须使所有参数都是可选的,然后自己验证它们:
ap=argparse.ArgumentParser()
ap.add_argument('-c', required=False)
ap.add_argument('a', nargs='?')
ap.add_argument('b', nargs='?')
args = ap.parse_args()
if (args.c is not None):
# process c
elif (args.a is not None and args.b is not None):
# process a and b
else:
# validation errors
如果您愿意将a和b设为单个命名参数而不是位置参数,则可以使用mutual exclusion为您执行此操作.互斥组要求它们中的所有参数都是可选的,并且仅需要命名参数.
ap=argparse.ArgumentParser()
g = ap.add_mutually_exclusive_group(required=True)
g.add_argument('-ab', nargs=2, required=False)
g.add_argument('-c', required=False)
args = ap.parse_args()
print('args={}'.format(repr(args)))
if (args.c is not None):
# process c
elif (args.ab is not None):
a, b = args.ab
# process a and b
else:
raise Exception("should never get here")
内容总结
以上是互联网集市为您收集整理的如何在命令行上以不同的输入方式运行python程序全部内容,希望文章能够帮你解决如何在命令行上以不同的输入方式运行python程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。