请找到以下脚本
from sys import argv
script, contact_name, contact_no = argv
def operation()
some code goes here
由于我从命令行运行此脚本,如何将contact_name和contact_no传递给操作函数? 我正在使用python 2.7
答案 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变量。