sys.argv的意义

原文地址:https://www.cnblogs.com/zzliu/p/10775049.html

简单来说,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']

改变当前工作目录,切换到上级目录tmp

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]的方式获取这些参数

最新文章

  1. Android应用中MVP开发模式
  2. 海康威视 NET_DVR_FindFile NET_DVR_PlayBackByTime 尝试读取或写入受保护的内存,这通常指示其他内存已损坏
  3. MapReduce实现TopK的示例
  4. Find out who the “mole” is?
  5. char a[] = "hello"; char c[] = {'h','e','l','l','o'}; int b[] = {1, 2, 3, 4, 5};的长度区别,及内存中空间开辟情况
  6. 【面试题015】链表中倒数第k个结点
  7. Oracle数据泵导入导出数据,建立表空
  8. SystemFile
  9. 转:深入学习Oracle分区表及分区索引
  10. 抓取“矢量”的实时交通流量数据
  11. linux下如何修改iptables开启80端口
  12. sql server 各种等待类型-转
  13. php json_encode与json_decode详解及实例
  14. [LeetCode] Largest Triangle Area 最大的三角区域
  15. 恶心github 下载慢
  16. new 和 delete
  17. R语言-画柱形图
  18. mongodb因非法关闭导致无法启动的解决方案
  19. MR案例:倒排索引 && MultipleInputs
  20. redis的list类型以及其操作

热门文章

  1. gMIS吉密斯十年执念:Lower Costs较低成本Better Productivity较高效率
  2. php 连接oracle插入多张图片的方法
  3. BaseAdapter教程(2) BaseAdapter的notifyDataSetChanged动态刷新
  4. [Usaco2009 Oct]Heat Wave 热浪(裸最短路径)
  5. [LC] 350. Intersection of Two Arrays II
  6. C# 接口练习
  7. 1)关于配置centos的网络问题
  8. 代码审计中的CSRF
  9. android 9.0 http无法访问问题
  10. Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.212.el6_10.3.x86_64