python sys.argv接收传递参数

我们经常使用python 脚本需要传递参数,例如:python test.py "hello",那么在test.py中如何接收到参数"hello"呢?可以使用sys.argv[] 来接收。详情如下:

# 接收参数脚本test.py
# test.py
import sys

def receive_args():
    args01 = sys.argv[1]
    print args01

receive_args()

执行此脚本:
python test.py hello
hello

查看sys.argv[]属性,可知与列表方法一致,“argv” 即 “argument value” 是一个列表对象,其中存储的是在命令行调用 python 脚本是提供的 “命令行参数”。

>>> import sys
>>> dir(sys.argv)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> 

下面来看一下几个常见用法:

一、sys.argv[0]

sys.argv[0] 用来获取执行的脚本名称。

# test.py
import sys

def receive_args():
    file_name = sys.argv[0]
    print file_name

receive_args()

#python test.py 
test.py

二、sys.argv[:]

sys.argv[:]用来获取参数列表

import sys

def receive_args():
    file_name = sys.argv[0]
    all_args = sys.argv[:]
    print file_name
    print all_args

receive_args()

#python test.py "2023-03-14" "liming" "shopping"
test.py
['test.py', '2023-03-14', 'liming', 'shopping']

三、sys.argv[n]

n 代表数字1,2,3… 表示第几个参数,用来获取指定参数

import sys

def receive_args():
    file_name = sys.argv[0]
    all_args = sys.argv[:]
    time = sys.argv[1]
    who = sys.argv[2]
    do_what = sys.argv[3]
    print file_name
    print all_args
    print time
    print who
    print do_what

receive_args()

#python test.py "2023-03-14" "liming" "shopping"
test.py
['test.py', '2023-03-14', 'liming', 'shopping']
2023-03-14
liming
shopping

利用此特性可以获取所有参数:sys.argv[2:]

四、利用列表其他属性

下面仅使用append()方法,其他类似,不再介绍

import sys

def receive_args():
    file_name = sys.argv[0]
    all_args = sys.argv[:]
    time = sys.argv[1]
    who = sys.argv[2]
    do_what = sys.argv[3]
    print file_name
    print all_args
    print time
    print who
    print do_what
    all_args.append("morning")
    print all_args


receive_args()

#python test.py "2023-03-14" "liming" "shopping"
test.py
['test.py', '2023-03-14', 'liming', 'shopping']
2023-03-14
liming
shopping
['test.py', '2023-03-14', 'liming', 'shopping', 'morning']

参考文档
1、https://blog.csdn.net/fancynthia/article/details/126271660

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值