作者:loveyao123456 | 来源:互联网 | 2023-06-03 09:19
1.常见的sys模块的应用:
1.在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称 argv(命令行参数个数)
#!/usr/bin/env python
import sys
print(sys.argv)
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
执行脚本:
python3 sys_0.py ni hao a
结果:
['sys_0.py', 'ni', 'hao', 'a']
sys_0.py
ni
hao
结论:
sys.argv表示程序打印以列表的形式打印脚本名及参数
sys.argv[0] 表示程序自身
sys.argv[1] 表示程序的第一个参数
sys.argv[2] 表示程序的第二个参数
2. sys.exit(n) 退出python执行程序,下面的代码将不会执行,如同shell中的exit一样
。
#!/usr/bin/env python
import sys
a = 4
if a <5:
print(1)
sys.exit(3)
print(2)
执行脚本:
python3 sys_0.py
结果:
1
3. sys.path 包含输入模块的目录名列表
#!/usr/bin/env python
import sys
for i in sys.argv:
print(i)
print("\n\nThe pathname", sys.path, '\n')
执行脚本:
python3 sys_0.py text1 test2
结果:
sys_0.py
text1
test2
The pathname ['/Python', '/usr/local/python3/lib/python36.zip', '/usr/local/python3/lib/python3.6/site-packages/psutil-2.1.3-py3.6-linux-x86_64.egg']
3.sys.stdin/sys.stdout/sys.stderr
stdin,stdout,stderr在Python中都是文件属性对象, 他们在python启动时自动与shell环境中的标准输入, 输出, 出错相关. 而python程序在shell中的I/O重定向是有shell来提供的,与python本身没有关系.python程序内部将stdin, stdout, stderr读写操作重定向到一个内部对象
#!/usr/bin/env python
import sys
#标准输入
print('hi, %s' % input('Please enter your name:'))
#等价于上面的
print("Please enter you name")
name = sys.stdin.readline()[:-1]
print("Hi, %s" % name)
#标准输出
print("Holle World\n")
#等价于上面的
sys.stdout.write("stdout resule is good\n")
执行:
[root@localhost Python]# python3 sys_0.py
Please enter your name:text1
hi, text1
Please enter you name
text2
Hi, text2
Holle World
stdout resule is good