热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python中sys模块的功能及用法详解

本文详细介绍了Python中sys模块的功能及用法,包括对解释器参数和功能的访问、命令行参数列表、字节顺序指示符、编译模块名称等。同时还介绍了sys模块中的新功能和call_tracing函数的用法。推荐学习《Python教程》以深入了解。

5df83aebe2736218.jpg

sys-系统特定的参数和功能

该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。

sys.argv

传递给Python脚本的命令行参数列表。argv[0]是脚本名称(依赖于操作系统,无论这是否是完整路径名)。如果使用-c解释器的命令行选项执行命令,argv[0]则将其设置为字符串’-c’。如果没有脚本名称传递给Python解释器,argv[0]则为空字符串。

要循环标准输入或命令行上给出的文件列表,请参阅fileinput模块。

sys.byteorder

本机字节顺序的指示符。这将具有’big’big-endian(最重要的字节优先)平台和’little’little-endian(最不重要的字节优先)平台的价值。

推荐学习《python教程》。

2.0版本中的新功能

sys.builtin_module_names

一个字符串元组,给出了编译到此Python解释器中的所有模块的名称。(此信息不以任何其他方式提供 - modules.keys()仅列出导入的模块。)

sys.call_tracing(func,args )

呼叫func(*args),同时启用跟踪。跟踪状态被保存,然后恢复。这是从调试器从检查点调用,以递归调试其他一些代码。

sys.copyright

包含与Python解释器相关的版权的字符串

sys._clear_type_cache()

清除内部类型缓存。类型缓存用于加速属性和方法查找。仅在参考泄漏调试期间使用该函数删除不必要的引用。

此功能仅用于内部和专门用途。

版本2.6中的新功能。

sys._current_frames()

返回一个字典,将每个线程的标识符映射到调用该函数时该线程中当前活动的最顶层堆栈帧。请注意,traceback模块中的函数可以在给定这样的帧的情况下构建调用堆栈。

这对于调试死锁是最有用的:这个函数不需要死锁线程的协作,只要这些线程的调用堆栈保持死锁,它们就会被冻结。对于非死锁线程返回的帧在调用代码检查帧时可能与该线程的当前活动没有关系。

此功能仅用于内部和专门用途。

2.5版中的新功能。

sys.dllhandle

指定Python DLL句柄的整数。可用性:Windows。

sys.displayhook(值)

如果值不是None,则此函数sys.stdout将其打印到并保存builtin._。

sys.displayhook调用在 交互式Python会话中输入的表达式的结果。可以通过为其分配另一个单参数函数来自定义这些值的显示sys.displayhook。

sys.dont_write_bytecode

如果这是真的,Python将不会尝试在源模块的导入上编写.pyc或.pyo文件。此值最初设置为True或 False取决于-B命令行选项和 PYTHONDONTWRITEBYTECODE 环境变量,但您可以自己设置它来控制字节码文件的生成。

版本2.6中的新功能。

sys.excepthook(类型,值,回溯)

此函数打印出给定的回溯和异常sys.stderr。

当引发异常并且未被捕获时,解释器sys.excepthook使用三个参数调用 ,即异常类,异常实例和回溯对象。在交互式会话中,这发生在控制返回到提示之前; 在Python程序中,这发生在程序退出之前。可以通过为其分配另一个三参数函数来自定义此类顶级异常的处理sys.excepthook。

sys._displayhook_

sys._excepthook_

这些对象包含的原始值displayhook,并excepthook 在程序的开始。它们被保存,以便displayhook和 excepthook情况下可以恢复他们碰巧得到破碎的对象替换。

sys.exc_info()

此函数返回三个值的元组,这些值提供有关当前正在处理的异常的信息。返回的信息特定于当前线程和当前堆栈帧。如果当前堆栈帧未处理异常,则从调用堆栈帧或其调用者获取信息,依此类推,直到找到正在处理异常的堆栈帧。这里,“处理异常”被定义为“正在执行或已执行except子句。”对于任何堆栈帧,只能访问有关最近处理的异常的信息。

如果堆栈中的任何位置都没有处理异常,None则返回包含三个值的元组 。否则,返回的值是。它们的含义是:type获取正在处理的异常的异常类型(类对象); value获取异常参数(其 关联值或第二个参数,如果异常类型是类对象,则始终为类实例); traceback 获取一个回溯对象(参见参考手册),该对象在最初发生异常的位置封装调用堆栈。(type, value, traceback)raise

如果exc_clear()被调用,则此函数将返回三个None值,直到当前线程中引发另一个异常或执行堆栈返回到正在处理另一个异常的帧。



推荐阅读
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • DSP中cmd文件的命令文件组成及其作用
    本文介绍了DSP中cmd文件的命令文件的组成和作用,包括链接器配置文件的存放链接器配置信息、命令文件的组成、MEMORY和SECTIONS两个伪指令的使用、CMD分配ROM和RAM空间的目的以及MEMORY指定芯片的ROM和RAM大小和划分区间的方法。同时强调了根据不同芯片进行修改的必要性,以适应不同芯片的存储用户程序的需求。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
author-avatar
皓月当空668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有