python之sys模块
1. python的sys模块介绍
sys是Python内置的一个与Python解释器本身相关的标准库模块。它主要提供了一些访问解释器的信息和功能,如命令行参数、应用程序退出、标准输入输出等
1.1 sys.argv
sys.argv是一个包含命令行参数的列表,第一个参数是运行的文件名,之后的元素是从命令行中输入的按顺序排列的参数。例如运行命令:
```
python example.py hello world
```
则sys.argv的值为:['example.py', 'hello', 'world']`
import sys
print(sys.argv)
1.2 sys.exit()
sys.exit()用于退出当前程序,可以指定退出时的返回值。默认返回值为0,表示正常退出;非0表示异常退出或程序出错。传递给sys.exit()的参数是一个字符串,该字符串会输出到stderr中
import sys
try:
a = int(input('请输入一个整数:'))
print(10 / a)
except ZeroDivisionError:
print('出现错误:除数不能为零')
sys.exit(1)
except ValueError:
print('出现错误:请输入一个整数')
sys.exit(2)
1.3 . sys.stdin, sys.stdout, sys.stderr
sys.stdin、sys.stdout、sys.stderr分别代表标准输入、标准输出和标准错误输出,可以通过改变它们的值来重定向标准输入、标准输出和标准错误输出,从而实现一些自定义的输入输出功能。
import sys
old_stdout = sys.stdout
with open('output.txt', 'w') as f:
sys.stdout = f
print('Hello, World!')
sys.stdout = old_stdout
print('已输出到文件 -> output.txt')
上述代码将标准输出重定向到了output.txt文件中,输出的字符串不再在控制台显示,而是保存在文件中。
1.4. sys.path
sys.path是一个Python搜索模块的路径列表,包含了Python搜索时查找模块的所有路径,可以在其中添加自定义路径以实现模块搜索。如果需要在当前脚本中使用其他目录中的模块,可以将该目录添加到sys.path中
import sys
sys.path.append('/path/to/module_dir')
1.5 sys.platform
sys.platform提供了一个字符串,用于表示当前Python解释器所在的平台,如"win32"表示Windows平台,"linux"表示Linux平台,"darwin"表示Mac OS X平台等。
import sys
if sys.platform.startswith('win'):
print('当前系统为Windows')
elif sys.platform.startswith('linux'):
print('当前系统为Linux')
elif sys.platform.startswith('darwin'):
print('当前系统为Mac OS X')
1.6 sys.version
sys.version提供了当前Python解释器的版本信息
import sys
print(sys.version)
1.7 . sys.modules
sys.modules是一个Python已经导入的模块的字典,字典的键是模块名,值是模块对象。在模块被import时,所有导入的模块都会被添加到sys.modules中。这个属性可以用于查看已经导入的模块
import sys
print(sys.modules)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具