使用argv将参数传递给python中的函数

时间:2016-01-28 06:51:59

标签: python python-2.7

请找到以下脚本

from sys import argv
script, contact_name, contact_no = argv

def operation()
    some code goes here

由于我从命令行运行此脚本,如何将contact_name和contact_no传递给操作函数? 我正在使用python 2.7

3 个答案:

答案 0 :(得分:5)

命令行参数作为数组传递给程序,第一个通常是程序的位置。所以我们跳过argv[0]并转到其他参数。

此示例不包含错误检查。

from sys import argv

def operation(name, number):
    ...

contact_name = argv[1]
contact_no = argv[2]

operation(contact_name, contact_no)

从命令行调用:

python myscript.py John 5

答案 1 :(得分:4)

您可以使用argparse编写用户友好的命令行界面。

import argparse

parser = argparse.ArgumentParser(description='You can add a description here')

parser.add_argument('-n','--name', help='Your name',required=True)
args = parser.parse_args()

print args.name

要调用脚本,请使用:

python script.py -n a_name

答案 2 :(得分:2)

允许任何参数

from sys import argv

def operation(name, number, *args):
    print(name , number)

operation(*argv[1:])

从命令行调用:

python myscript.py Om 27

第一个和第二个argv(“Om”和27将分别传递给名称和号码) 额外的argv(如果有的话)将* args tupple变量。