ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. ## sys.argv参数传递 功能:实现从程序外部向程序传递参数\[\*\],0代表程序本身 案例代码: ``` #!/usr/bin/env python # -*- coding:utf-8 -*- 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 -*- import sys print(type(sys.path)) for i in sys.path: print(i) ``` 运行结果: ``` <class 'list'> 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)] win64 utf-8 mbcs ~~~ ## 标准输入输出 * sys.stdin   #标准输入 * 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.getrecursionlimit() #获取最大递归层数 sys.setrecursionlimit(1200) #设置最大递归层数 sys.getdefaultencoding() #获取解释器默认编码 sys.getfilesystemencoding #获取内存数据存到文件里的默认编码 ~~~