首页 > 编程语言 >【python常用模块之sys模块】---系统模块(sys)

【python常用模块之sys模块】---系统模块(sys)

时间:2023-12-24 20:25:42浏览次数:45  
标签:--- 解释器 Python sys 模块 print import

title:  【python常用模块之sys模块】---系统模块(sys)
date:  2023-12-24  19:54:06 
updated: 2023-12-24 20:05:00
description:  【python常用模块之sys模块】---系统模块(sys)
cover: 
       http://www.tuohang.net/article/277594.html

sys模块

“sys” 即 “system”,“系统”之意。
sys模块提供了访问解释器使用或维护的变量,以及与解释器进行交互的函数。 通俗来讲,sys模块负责程序与Python解释器的交互,提供了一系列的函数和变量,用于操控Python运行时的环境。比如:它提供了一些与Python解释器交互的方法,包括:获取命令行参数、处理Python解释器的退出等。

导入模块

import sys

sys模块相关常用属性和函数:

sys.version属性

​ sys.version是一个包含Python解释器版本号和编译版本号等额外信息的字符串,它会在Python交互式解释器启动时显示。

import sys

# 输出:3.11.4 (tags/v3.11.4:d2340ef, Jun  7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)]
print(sys.version)
sys.version_info属性

​ sys.version_info是一个元组,包含了五个部分的信息,分别为:主版本号、次版本号、微版本号、发行级别('alpha'、'beta'、'candidate' 或 'final')和序列号。比如:对于Python 3.8.5,sys.version_info将返回(3, 8, 5, 'final', 0)。返回的元组可以用于比较Python版本。

import sys

# 输出:sys.version_info(major=3, minor=11, micro=4, releaselevel='final', serial=0)
print(sys.version_info)
if sys.version_info < (3, 0):
    print('can only run in Python 3.x')
    sys.exit()
else:
    print('Python version passed')
sys.platform属性

​ sys.platform是一个字符串,用于表示Python解释器正在其上运行的平台。如果你的Python解释器运行在Windows上,sys.platform的值将是'win32';如果你的Python解释器运行在Linux或Mac OS上,sys.platform的值将是'darwin'或'linux2'。

​ 该属性可以用来编写依赖于特定操作系统的代码,比如:如果我们需要使用一些只在Windows上可用的库或者功能,可以先检查sys.platform的值,然后根据需要选择使用哪个库或者功能,或者给用户一个提示,让他们知道程序无法在当前的操作系统上运行。

import sys

# 输出:win32
print(sys.platform)
sys.path属性

​ sys.path是一个Python列表,包含了许多目录。当我们尝试导入一个模块时,Python会在这个列表中寻找那个模块。该列表的初始值来自于以下三个方面:输入脚本的目录、PYTHONPATH环境变量、安装的默认路径。可以修改这个列表,以便Python能在我们指定的目录中查找模块。比如:如果模块在一个非标准的目录中,我们可以将那个目录添加到sys.path中,这样Python就能找到它了。

​ 注意:修改sys.path只会影响当前Python进程的行为,不会影响其他进程或Python解释器。

import sys

# 输出:['F:\\', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311\\python311.zip', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311\\DLLs', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311\\Lib', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages']
print(sys.path)

打印当前环境变量
# path_list = sys.path
# 向系统环境变量中插入路径
# path_list.insert()

启动文件内
# path_list = sys.path
# 向系统环境变量中插入路径
# path_list.insert(0,'ATM的文件夹路径')
# 不会报错
# from ... import ...
sys.argv属性

​ sys.argv是一个Python列表,包含了命令行参数。该列表的第一个元素是脚本名,也就是被调用的程序的名字,其余的元素是从命令行传递给程序的参数。比如:如果运行python test.py arg1 arg2,那么sys.argv将会是['test.py', 'arg1', 'arg2']。我们可以使用sys.argv来获取命令行参数,并根据需要对其进行处理。

import sys

# 输出:['F:\\test.py']
print(sys.argv)
sys.stdout属性

​ sys.stdout是一个Python文件对象,代表了系统的标准输出流。可以像操作文件一样操作sys.stdout,比如:写入文本。写入sys.stdout的内容将会被输出到控制台,也就是终端或者命令行窗口。注意:虽然我们可以像操作文件一样操作sys.stdout,但是并不建议这样做,因为这可能会导致一些难以预料的问题。如果需要输出文本,最好使用print()函数,而不是直接操作sys.stdout。

import sys

# 输出:Hello, CSDN
sys.stdout.write('Hello, CSDN\n')
sys.maxsize属性

​ sys.maxsize是一个Python整数,用于表示Python可以处理的最大整数。这个值是根据Python的位数和配置来确定的:在32位Python中,sys.maxsize的值是2147483647(也就是2的31次方减1);在64位Python中,sys.maxsize的值是9223372036854775807(也就是2的63次方减1)。sys.maxsize可以用于检查一个整数是否会在加法或乘法等操作后溢出,如果你尝试添加一个大于sys.maxsize的数到一个整数,Python会抛出一个OverflowError错误。

import sys

# 输出:9223372036854775807
print(sys.maxsize)
sys.exit()函数

​ sys.exit()函数用于引发一个系统退出,它接受一个可选参数,这个参数可以是一个整数,或者一个异常对象。如果参数是一个整数,那么这个整数会被用作Python解释器的退出状态;如果参数是一个异常对象,那么这个异常会被抛出;如果没有给这个函数提供任何参数,或者参数是None,那么Python解释器会退出,并且返回状态码0。该函数通常在想要立即结束程序,或者在程序中处理致命错误时使用。

import sys

a = 10
if a > 6:
    sys.exit(0)
else:
    print(a)
sys.getfilesystemencoding()函数

​ sys.getfilesystemencoding()函数用于返回文件系统的默认编码,该函数取代了sys.getdefaultencoding()函数。

import sys

# 输出:utf-8
print(sys.getfilesystemencoding())
sys.getrecursionlimit()函数

​ sys.getrecursionlimit()函数用于返回Python解释器当前的递归深度限制。这个限制是一种防止无限递归导致程序崩溃的保护机制。在Python中,每次函数调用都会在调用栈中增加一个新的栈帧,每个栈帧都会占用一些内存。如果函数调用层次过深,就会导致调用栈溢出,程序崩溃。注意:虽然可以使用sys.setrecursionlimit(limit)来提高这个限制,但是一般不建议这么做,因为这可能会导致大量的内存被占用,甚至导致程序崩溃。

import sys

# 输出:1000
print(sys.getrecursionlimit())

标签:---,解释器,Python,sys,模块,print,import
From: https://www.cnblogs.com/queryH/p/17924799.html

相关文章

  • 2023-2024-1 20231323《计算机基础与程序设计》第十三周学习总结
    2023-2024-120231323《计算机基础与程序设计》第十三周学习总结作业信息所属课程2023-2024-1-计算机基础与程序设计作业要求2023-2024-1计算机基础与程序设计第十三周作业作业目标自学教材《C语言程序设计》第12章并完成云班课测试作业正文本博客链接教......
  • 学期2023-2024-1 20231409 《计算机基础与程序设计》第十三周学习总结
    学期2023-2024-120231409《计算机基础与程序设计》第十三周学习总结这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十三周作业这个作业的目标自学《C语言程序设计》第十二章并完成云班课测试作业正......
  • ZIMP - swagger-ui
     zzh@ZZHPC:/zdata/Github$gitclonehttps://github.com/swagger-api/swagger-ui.gitCloninginto'swagger-ui'...remote:Enumeratingobjects:41700,done.remote:Countingobjects:100%(530/530),done.remote:Compressingobjects:100%(251/251......
  • 【python常用模块之subprocess模块】---subprocess模块
    title:【python常用模块之subprocess模块】---subprocess模块date:2023-12-2418:54:06updated:2023-12-2419:50:00description:【python常用模块之subprocess模块】---subprocess模块cover:https://www.cnblogs.com/xxpythonxx/p/17625032.htmlsubproc......
  • 2023-2024-1 20231301 《计算机基础与程序设计》第十三周学习总结
    2023-2024-120231301《计算机基础与程序设计》第十三周学习总结作业信息作业链接作业课程<班级>(2023-2024-1-计算机基础与程序设计)作业要求<作业>(2023-2024-1计算机基础与程序设计第十三周学习总结)作业目标<《C语言程序设计》预习第十二章>《C语言程序设......
  • 2023-2024-1 20231325 《计算机基础与程序设计》第13周学习总结
    ###目录*作业信息*教材学习内容总结1.《c语言程序设计》第12章*基于AI的学习*上周错题*学习进度条作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里1.学习《C语言程序设计》第12章并完成云班课测试。作业正文......
  • 一天个测试名词---接口测试
    一、什么是接口测试我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试!那么接口测试是怎么来测试接口的呢?接口测试就是通过接口的不同情况下的输入和与之对用的输出之间......
  • 2023-2024-1 学号20231324《计算机基础与程序设计》第十三周学习总结
    2023-2024-1学号20231324《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十三周作业这个作业的目标《C语言程序设计》第12章并完成云班课测......
  • 2023-2024-1 学号:20231305 《计算机基础与程序设计》第13周学习总结
    2023-2024-1学号:20231305《计算机基础与程序设计》第13周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第一周作业)这个作业的目标<自学教材《C......
  • 04--正则表达式回顾
    一正则与re模块简介#正则概述正则表达式,又称规则表达式描述了一种字符串匹配的模式#pattern正则匹配是一个模糊的匹配#不是精确匹配#re模块python自1.5版本开始增加了re模块re模块是python语言拥有了所有正则表达式的功能,提供了perl风格的正则表达式模式#如......