sys.argv的意义及用法
sys.argv的意义
简单来说,sys.argv是一个参数列表,这个列表存放着从外界获取到的参数(可能有多个)
下面以一个例子来详细阐述sys.argv,本次演示在ubuntu环境下运行
新建一个test.py,写入以下代码
test.py
import sys
lst = sys.argv
print(lst)
在命令行使用python解释器运行test.py
python3 test.py # 注意此命令要在test.py所在的目录下运行
运行结果
['test.py']
可以看到sys.argv里面只有一个元素,是当前文件的文件名
下面我们在运行test.py时传入一个参数,观察sys.argv的变化
python3 test.py 2
运行结果
['test.py', '2']
传入多个参数时
```
python3 test.py 2 "hello" # 注意参数是以空格分割
运行结果
['test.py', '2', 'hello']
<br>
改变当前工作目录,切换到上级目录tmp
```linux
cd ..
再次运行test.py
python3 tmp/test.py 2 "hello" "world"
运行结果
['tmp/test.py', '2', 'hello', 'world']
可以看到sys.argv的第一个元素是执行的py文件相对于当前工作目录的路径
sys.argv的使用
工作中我们可能会遇到这样一种情况,需要在命令行执行py文件,同时也需要传入参数,这时候sys.argv就派上用场了,sys.argv维护着一个参数列表,从外界传入的参数都记录在这个列表里,从而就可以在py文件里使用这些参数
修改test.py文件
test.py
import sys
lst = sys.argv
print(lst)
def func():
a = int(sys.argv[1])
b = int(sys.argv[2])
return a**b
print("result of func:",func())
运行结果
['test.py', '2', '3']
result of func: 8
## 小结
简而言之,sys.argv是一个参数列表,第一个元素是执行的py文件相对于当前工作目录的路径,后面的元素都是外界传入的参数,在py文件里可以使用`sys.argv[index]`的方式获取这些参数
sys.argv的意义及用法的更多相关文章
- sys.argv的意义[转]
sys.argv的意义 原文地址:https://www.cnblogs.com/zzliu/p/10775049.html 简单来说,sys.argv是一个参数列表,这个列表存放着从外界获取到的参数 ...
- python基础之 sys.argv[]用法
sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始. arg[1]表示第一个命令行参数 arg[1][2:] 表示取第一个命令行参数,但是去掉前两 ...
- Python中 sys.argv[]的用法
Python中 sys.argv[]的用法 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上 ...
- Python3 sys.argv[ ]的用法解释
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个"外部"很关键,所以那些试图从代码来说明它作用的解释一直没看明白.因为我们从外部取得的参数可以是多个,所以获得的是一 ...
- 31 Python中 sys.argv[]的用法简明解释(转)
Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果, ...
- Python中 sys.argv[]的用法简明解释
sys.argv[]就是一个从程序外部获取参数的桥梁,这个“外部”很关键.因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能 ...
- sys.argv]的用法
Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果, ...
- Python3 中 sys.argv[ ]的用法解释
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白.因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list), ...
- sys.argv 详细用法
sys.argv 用于获取命令行参数,用法如下: [root@localhost ~]$ cat 1.py #!/usr/bin/env python #-*- coding:utf-8 -*- im ...
随机推荐
- Codeforces Round #594 (Div. 2)(A/B/C)
A. Integer PointsDescription DLS and JLS are bored with a Math lesson. In order to entertain themsel ...
- flask standrad class 使用
from flask import Flask,views,url_for app = Flask(__name__) class IndexView(views.View): def dispatc ...
- servlet学习之servletAPI编程常用的接口和类
ServletConfig接口: SevletConfig接口位于javax.servlet包中,它封装了servlet配置信息,在servlet初始化期间被传递.每一个Servlet都有且只有一个S ...
- Java小知识-----Map 按Key排序和按Value排序
Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value). 1.按键排序 jdk内置的java.util包下的Tr ...
- ABC134F Permutation Oddness
Problem Statement Let us define the oddness of a permutation $p = \{p_1, p_2, \dots, p_n\}$ of $\{1, ...
- reids集群状态正常redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster
重新启动redis集群时启动失败,报错: redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachab ...
- AssertionError [ERR_ASSERTION]: Task function must be specified,gulp版本不一致
报错信息: vue项目打包报错 > innovate-admin-vue@ build /home/soldier/SOLDIER/IDE_project/webStorm_project/in ...
- 树状数组+二维前缀和(A.The beautiful values of the palace)--The Preliminary Contest for ICPC Asia Nanjing 2019
题意: 给你螺旋型的矩阵,告诉你那几个点有值,问你某一个矩阵区间的和是多少. 思路: 以后记住:二维前缀和sort+树状数组就行了!!!. #define IOS ios_base::sync_wit ...
- 如何在LinuxKernel中操作file(set_fs與get_fs)
在Kernel 中,照理說能存取至 0 ~ 4GB.但是實作層面卻是只能讓我們使用到3GB ~ 4GB 這會導致我們無法使用open(),write()這些在user space下的function. ...
- Zabbix 配置Python邮件告警
1.首先你应该注册一个163邮箱,用于发信,再注册时开启SMTP/POP3功能,使用加密密码认证. 2.在Zabbix主机上新建send.py文件,将以下代码复制编辑,设置发件用户.密码. [root ...