sys函数python sys函数

sys是python中的标准库吗是的 , sys模块主要是针对与Python解释器相关的变量和方法 。
下边是sys常用的变量和方法说明:
sys.argv#获取命令行参数列表 , 第一个元素是程序本身
sys.exit(n) #退出Python程序,exit(0)表示正常退出 。当参数非0时,会引发一个SystemExit异常 , 可以在程序中捕获该异常
sys.version #获取Python解释程器的版本信息
sys.maxsize #最大的Int值,64位平台是2**63 - 1
sys.path#返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform#返回操作系统平台名称
sys.stdin#输入相关
sys.stdout#输出相关
sys.stderr#错误相关
sys.exc_info()#返回异常信息三元元组
sys.getdefaultencoding()#获取系统当前编码,默认为utf-8
sys.setdefaultencoding()#设置系统的默认编码
sys.getfilesystemencoding() #获取文件系统使用编码方式,默认是utf-8
sys.modules #以字典的形式返回所有当前Python环境中已经导入的模块
sys.builtin_module_names#返回一个列表,包含所有已经编译到Python解释器里的模块的名字
sys.copyright#当前Python的版权信息
sys.flags#命令行标识状态信息列表 。只读 。
sys.getrefcount(object) #返回对象的引用数量
sys.getrecursionlimit() #返回Python最大递归深度,默认1000
sys.getsizeof(object[, default])#返回对象的大小
sys.getswitchinterval() #返回线程切换时间间隔,默认0.005秒
sys.setswitchinterval(interval) #设置线程切换的时间间隔 , 单位秒
sys.getwindowsversion() #返回当前windwos系统的版本信息
sys.hash_info#返回Python默认的哈希方法的参数
sys.impleme
Python常用标准库之sys sys模块主要是针对与Python解释器相关的变量和方法,不是主机操作系统 。
导入方式: import sys
sys.argv是一个脚本执行参数列表,列表的第一个元素是脚本名称,从第二个元素开始才是真正的参数 。
path是一个目录列表 , 供Python从中查找模块 。在Python启动时,sys.path根据内建规则和PYTHONPATH变量进行初始化 。sys.path的第一个元素通常是个空字符串,表示当前目录 。
sys.path本质上是一个列表 , 可以进行append、insert、pop、remove等各种列表相关的操作,但通常都进行append操作,添加自己想要的查找路径 。
stdin 用于所有的交互式输入(包括input()函数) 。
stdout 用于print()的打印输出或者input()函数的提示符 。
stderr 用于解释器自己的提示信息和错误信息 。
简而言之,这三个属性就是操作系统的标准输入、输出和错误流,它们返回的都是一个“文件类型”对象,支持read()、write()和flush()等操作 , 就像用open()方法打开的文件对象那样!
当我们用 input('Please input something!') 时 , 事实上是先输出提示信息,然后捕获输入 。以下两组等价:
当我们 print(obj) 的时候,事实上是调用了 sys.stdout.write(obj '\n') ,将内容打印到控制台(默认是显示器),然后追加一个换行符 。以下两行等价:
默认情况下 sys.stdout 指向控制台 。如果把文件对象赋值给 sys.stdout,那么 print () 调用的就是文件对象的 write() 方法 。
如果你还想同时在控制台打印的话,最好先将原始的控制台对象引用保存下来,向文件中打印之后再恢复sys.stdout .
【sys函数python sys函数】参考:
python中os和sys模块的区别与常用方法总结os与sys模块的官方解释如下:
os: This module provides a portable way of using operating system dependent functionality.
这个模块提供sys函数python了一种方便的使用操作系统函数的方法 。
sys: This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter.
这个模块可供访问由解释器使用或维护的变量和与解释器进行交互的函数 。
总结就是sys函数python,os模块负责程序与操作系统的交互sys函数python,提供sys函数python了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供sys函数python了一系列的函数和变量,用于操控python的运行时环境 。
Python sys模块 是做什么的sys模块包括了一组非常实用的服务,内含很多函数方法和变量 , 用来处理Python运行时配置以及资源 , 从而可以与前当程序之外的系统环境交互 。
sys模块重要函数变量
1 ) sys.stdin 标准输入流 。
2)sys.stdout 标准输出流 。
3 ) sys.stderr 标准错误流 。
4 ) sys.path 查找模块所在目录的目录名列表 。
5 ) sys.argv 命令行的参数,包括脚本名称 。
6 ) sys.platform 返回当前系统平台,如:win32、Linux等 。
python主函数怎么写一般来说,Python程序员可能是这样写main()函数的:
"""Module docstring.
This serves as a long usage message.
"""import sysimport getoptdef main():
# parse command line options
try:
opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])except getopt.error, msg:print msgprint "for help use --help"
sys.exit(2)# process options
for o, a in opts:if o in ("-h", "--help"):print __doc__
sys.exit(0)# process arguments
for arg in args:
process(arg) # process() is defined elsewhereif __name__ == "__main__":
main()1234567891011121314151617181920212223242526
Guido也承认之前自己写的main()函数也是类似的结构,但是这样写的灵活性还不够高,尤其是需要解析复杂的命令行选项时 。为此,他向大家提出了几点建议 。
添加可选的 argv 参数
首先,修改main()函数,使其接受一个可选参数 argv , 支持在交互式shell中调用该函数:
def main(argv=None):
if argv is None:
argv = sys.argv# etc., replacing sys.argv with argv in the getopt() call.1234
这样做,我们就可以动态地提供 argv 的值,这比下面这样写更加的灵活:
def main(argv=sys.argv):
# etc.12
这是因为在调用函数时 , sys.argv 的值可能会发生变化;可选参数的默认值都是在定义main()函数时,就已经计算好的 。
但是现在sys.exit()函数调用会产生问题:当main()函数调用sys.exit()时,交互式解释器就会推出!解决办法是让main()函数的返回值指示退出状态(exit status) 。因此,最后面的那行代码就变成了这样:
if __name__ == "__main__":
sys.exit(main())12
并且,main()函数中的sys.exit(n)调用全部变成return n 。
定义一个Usage()异常
另一个改进之处,就是定义一个Usage()异常,可以在main()函数最后的except子句捕捉该异常:
import sysimport getoptclass Usage(Exception):
def __init__(self, msg):
self.msg = msgdef main(argv=None):
if argv is None:
argv = sys.argvtry:try:
opts, args = getopt.getopt(argv[1:], "h", ["help"])except getopt.error, msg:raise Usage(msg)# more code, unchanged
except Usage, err:print sys.stderr, err.msgprint sys.stderr, "for help use --help"
return 2if __name__ == "__main__":
sys.exit(main())123456789101112131415161718192021222324
这样main()函数就只有一个退出点(exit)了,这比之前两个退出点的做法要好 。而且,参数解析重构起来也更容易:在辅助函数中引发Usage的问题不大 , 但是使用return 2却要求仔细处理返回值传递的问题 。
python中sys是什么模块python中的sys是提供了一系列有关python运行环境的变量和函数的模块,如sys.argv函数实现从程序外部向程序传递参数;sys.platform函数用于获取当前系统平台 。
sys模块提供了一系列有关Python运行环境的变量和函数 。
(推荐教程:Python入门教程)
sys模块的常见函数列表
sys.argv: 实现从程序外部向程序传递参数 。
sys.exit([arg]): 程序中间的退出,arg=0为正常退出 。
sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii 。
sys.setdefaultencoding(): 设置系统默认编码 , 执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8 。(见设置系统默认编码 )
sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.
sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到 。
sys.platform: 获取当前系统平台 。
sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
关于sys函数python和sys函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读