sys 模块的应用

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

 

posted @ 2019-04-23 22:36  QQmini  阅读(256)  评论(1编辑  收藏  举报