添加自定义命令行参数到 运行 if elif in python

Adding custom commandline parameters to run if elif in python

我需要在python文件中添加一个命令行参数(我没有在里面定义函数)这样参数就是平台,然后在我需要使用的文件里面:

if platform == iphone:
    <execute some code>
elif platform == ipad:
    <execute some other code>

基本上 if 和 elif 下定义的是相同的代码,但使用不同的资源(图像、txt 文件等)。我需要的是 运行 从命令行使用平台参数的文件的可能性,例如:

python somefile.py -iphone

现在我尝试了这样的 argparse:

platform = argparse.ArgumentParser()
platform.add_argument("iphone")
platform.add_argument("ipad")
platform.parse_args()

但显然它是错误的 and/or 遗漏了一些东西,因为它根本不起作用。我正在寻找一种最简单的方法来实现这一目标。

如果您将命令作为 python somefile.py iphone 然后你可以使用 sys.argv 获取在终端中传递的参数。 它给出了通过命令传递的参数列表。在你的情况下 sys.argv 将 return ['somefile.py','iphone'] 即第 0 个位置将包含程序名称,从第 1 个位置开始所有论据通过了。

import sys

platform=sys.argv[1]

if platform == 'iphone':
    <execute some code>
elif platform == 'ipad':
    <execute some other code>

如果您想使用 ArgumentParser,您需要将代码更改为:

parser= argparse.ArgumentParser()
parser.add_argument("-platform")
args = parser.parse_args()

if args.platform == 'iphone'
    ##do something with that information 

使用率:

python somefile.py -platform iphone

阅读更多关于 argParser 的内容here

否则你可以简单地使用 sys.argv[1] :

import sys 
if sys.argv[1] == 'iphone':
    # iphone

sys.argv 的用法:

python somefile.py iphone