sys 模块的应用

it2022-05-09  37

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:text1hi, text1Please enter you nametext2 Hi, text2Holle Worldstdout resule is good

 

转载于:https://www.cnblogs.com/QQmini/p/10759523.html


最新回复(0)