Python sys 模块的使用

sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。

一、处理命令行参数

sys.argv       #现从程序外部向程序传递参数[*],0代表程序本身
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time    : 2017/11/29 0029 11:31
# @Author  : ming
import sys
print(sys.argv)  
if len(sys.argv) > 1:
    print(sys.argv[0])
    print(sys.argv[1])
    print(sys.argv[2])
else:
    print("没有传递参数")

C:\Users\Administrator\PycharmProject\MyProject\myfunc>python ceshi.py arg1 arg2
['ceshi.py', 'arg1', 'arg2']  # 说明sys.argv 是一个包含参数的列表
ceshi.py #sys.argv[0] 代表脚本自身
arg1 # 第一个参数
arg2 # 第一个参数
sys.path       #获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time    : 2017/11/29 0029 11:31
# @Author  : ming
import sys
print(type(sys.path))
for i in sys.path:
    print(i)

运行结果:

<class 'list'>  
#说面sys.path 是一个列表 该列表中包含所有py文件可被搜索的路径或文件夹,只有在该目录中的模块或py文件才可以被imporp导入
C:\Users\Administrator\PycharmProject\MyProject\myfunc
C:\Users\Administrator\PycharmProject\MyProject
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python35.zip
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\DLLs
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib
C:\Users\Administrator\AppData\Local\Programs\Python\Python35
C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages
sys.version   #打印python版本
sys.platform  # 查看系统版本
sys.getdefaultencoding()  # 获取系统当前编码
sys.getfilesystemencoding() # 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys

print(sys.version)  # 查看平台版本
print(sys.platform)  # 查看系统版本
print(sys.getdefaultencoding())  # 获取系统当前编码
print(sys.getfilesystemencoding())  # 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'

运行结果:

3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)]
win32
utf-8
mbcs

sys.stdin #标准IO流,如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
sys.stdout
sys.stderr

制作进度条:  由于标准输入 不会自动回车
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys, time
for i in range(51):
    sys.stdout.write("\r")
    sys.stdout.write("%s%% | %s" % (int(i / 50 * 100), i * "|"))
    sys.stdout.flush()
    time.sleep(0.05)

运行结果: 动态的显示以下内容
100% | ||||||||||||||||||||||||||||||||||||||||||||||||||

二、常用语法总结

sys 常用方法
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.modules.keys() 返回所有已经导入的模块列表
sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
sys.exit(n) 退出程序,正常退出时exit(0)
sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.maxunicode 最大的Unicode值
sys.modules 返回系统导入的模块字段,key是模块名,value是模块
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout 标准输出
sys.stdin 标准输入
sys.stderr 错误输出
sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
sys.exec_prefix 返回平台独立的python文件安装的位置
sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'
sys.copyright 记录python版权相关的东西
sys.api_version 解释器的C的API版本
总结:
sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。

猜你喜欢

转载自blog.csdn.net/u011146423/article/details/83345004