python内置模块sys_三十九、Python内置模块之sys-程序员宅基地

技术标签: python内置模块sys  

20b1f6d5b5faed31895f03655982eca8.png

Python内置模块sys

sys模块代表了Python解释器相关有的信息,主要用来获取解释器的信息。下面的方法提供查看sys模块下的全部程序单元(包括变量和函数等):

>>> import sys

>>> [elem for elem in dir(sys) if not elem.startswith('_')]

['abiflags', 'api_version', 'argv', 'base_exec_prefix', 'base_prefix',

'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing',

'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info',

'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info',

'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth',

'get_coroutine_wrApper', 'getallocatedblocks', 'getcheckinterval',

'getdefaultencoding', 'getdlopenflags', 'getfilesystemencodeerrors',

'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount',

'getsizeof', 'getswitchinterval', 'gettrace', 'hash_info', 'hexversion',

'implementation', 'int_info', 'intern', 'is_finalizing', 'last_traceback',

'last_type', 'last_value', 'maxsize', 'maxunicode', 'meta_path', 'modules',

'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2',

'real_prefix', 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth',

'set_coroutine_wrapper', 'setcheckinterval', 'setdlopenflags', 'setprofile',

'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin',

'stdout', 'thread_info', 'version', 'version_info', 'warnoptions']

可以看出,sys模块提供了大量的属性和函数,由于有一些功能方法在实际程序开发中用的并不多,下面仅介绍常用的属性和函数。

sys.argv: 获取运行Python程序的命令行参数,是一个列表,第一个参数指运行的程序本身,每二个参数是命令行参数的第一个参数,依次类推...

48542e5aa1331578e0200f2cb2b9d006.png

命令行参数与argv列表元素的对应关系

# 新建文件argv_test.py, 代码内容如下

import sys

# 输入argv列表的长度

print(f'argv列表的长度为:{len(sys.argv)}')

# 打印argv的元素

for arg in sys.argv:

print(arg)

# 使用下面命令执行该文件

$ python argv_test.py fengqinyang duguqiubai dongfangbubai renwoxing

# 输出

argv列表的长度为:5

argv_test.py

fengqinyang

duguqiubai

dongfangbubai

renwoxing

sys.copyright: Python的解释器的版权信息

>>> print(sys.copyright)

Copyright (c) 2001-2019 Python Software Foundation.

All Rights Reserved.

Copyright (c) 2000 BeOpen.com.

All Rights Reserved.

Copyright (c) 1995-2001 Corporation for National Research Initiatives.

All Rights Reserved.

Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.

All Rights Reserved.

sys.executable: Python解释器在磁盘上的存储路径

>>> print(sys.executable)

/Users/david.tian/.virtualenvs/pysparkvenv/bin/python

sys.getfilesystemencodeing():当前系统中python文件的字符集

>>> print(sys.getfilesystemencoding())

utf-8

sys.getrefcount(object): 返回对象的引用计数,当object对象计数个数为0时,系统会回收该对象

>>> print(sys.getrefcount(sys))

57

>>> myfullname = 'davidekaka'

>>> print(sys.getrefcount(myfullname))

2

sys.getrecursionlimit(): 返回Python解释器支持的递归深度,该属性可以通过setrecursionlimit()来重新设置

>>> print(sys.getrecursionlimit())

1000

>>> sys.setrecursionlimit(1100)

>>> print(sys.getrecursionlimit())

1100

>>> sys.setrecursionlimit(1000)

sys.maxsize: 该属性指Python支持整数的最大值,和系统平台有关系统(32位和64位)不同

>>> print(sys.maxsize)

9223372036854775807

sys.version: 该属性返回Python解释器的版本

>>> print(sys.version)

3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52)

[Clang 6.0 (clang-600.0.57)]

sys.platform: 该属性返回Python解释器所在的平台

>>> print(sys.platform)

darwin

sys.path: 该属性指定Python查找模块的路径列表

>>> print(sys.path)

['', '/Users/david.tian/.virtualenvs/pysparkvenv/lib/python37.zip',

'/Users/david.tian/.virtualenvs/pysparkvenv/lib/python3.7',

'/Users/david.tian/.virtualenvs/pysparkvenv/lib/python3.7/lib-dynload',

'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7',

'/Users/david.tian/.virtualenvs/pysparkvenv/lib/python3.7/site-packages']

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_31925685/article/details/113506003

智能推荐

菜鸟学习Android笔记-20140311_textview3:[i18n] hardcoded string-程序员宅基地

文章浏览阅读771次。1、编写布局文件时,遇到这样的警告,“[I18N] Hardcoded string "昵称:", should use @string resource” 原来的代码:

不同参数统计运行时间 large_integer c语言,使用LARGE_INTEGER查看系统运行时间-程序员宅基地

文章浏览阅读252次。众所周知,windows ce是一个实时操作,因此提供了不少的优先级给用户.优先级最高为0级,也就是说使用0优先级的程序, 可以挂起整个系统, 来运行你的程序对于实时性比较的领域, 我们作为程序员的 应该清楚的知道你的程序模块运行的时间 是非常必要的. 当然这个模块运行的时间也不是完全的稳定的, 几次运行的时间相差几十毫秒是很正常的. 因此我们只要知道大概的时间就可以了.当然, 大家..._large_integer计算时间

ssh登陆服务器locale告警(-bash: warning: setlocale:)的处理方法-程序员宅基地

文章浏览阅读1.9k次。 使用ssh远程登陆 IDC机房服务器,发现老是出现如下告警信息:-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_U..._bash: warning: setlocale: lc_ctype: cannot change locale (en_us.utf-8): no s

Android Rxbus事件总线_rxbus.post-程序员宅基地

文章浏览阅读3.7k次。我的视频课程:《FFmpeg打造Android万能音频播放器》 最近在项目中使用了Rxjava和RxAndroid,确实感觉挺不错的,然后听说可以用RxBus来替换掉EventBus等事件分发的三方库,然后就上午找比较好的RxBus开源项目(以为是有统一标准的),然而后面才知道,RxBus没有绝对的,只是一种想法而已,借助Rxjava的特性来实现的。既然这样,我也就自己实现了一个(可..._rxbus.post

mysql 块写入_优化了MYSQL大量写入问题,老板奖励了1000块给我-程序员宅基地

文章浏览阅读131次。摘要:大家提到Mysql的性能优化都是注重于优化sql以及索引来提升查询性能,大多数产品或者网站面临的更多的高并发数据读取问题。然而在大量写入数据场景该如何优化呢?今天这里主要给大家介绍,在有大量写入的场景,进行优化的方案。总的来说MYSQL数据库写入性能主要受限于数据库自身的配置,以及操作系统的性能,磁盘IO的性能。主要的优化手段包括以下几点:1、调整数据库参数(1) innodb_flush_..._mysql 块写入

egg.js ajax上传文件,Egg.js 中 AJax 上传文件获取参数的方法-程序员宅基地

文章浏览阅读317次。依赖formidable代码前端单文件,Ajax多文件,Ajax$(function () {const _csrf = "{{ ctx.csrf | safe }}";$('form').submit(function (e) {e.preventDefault();const formData = new FormData();const fileList = $(this).find('.f..._egg.js获取额外文件上传的参数

随便推点

win10安装linux虚拟机并配置shell工具连接_shell确认虚拟机光盘连接-程序员宅基地

文章浏览阅读1k次。1:虚拟机安装先看怎么用VMware安装一个虚拟机,全部放图,一步步来。主要还是以防以后我自己忘记怎么搞了,老了,记性不好了。VMware就在网上随便下载一个了,镜像我会在下面放上我的或者大家也可以自己去网上下一个。第一步:新建虚拟机第二步:选择类型第三步:选择映像文件,一般都会检测到,检测不到就只能自己打开浏览去找吧!第四步:给虚拟机命名,可以更改虚拟机安装位置。反正我是不会装在系统盘的,这辈子都不会的o(´^`)o第五步:默认选择是虚拟磁盘拆分成多个文件,但._shell确认虚拟机光盘连接

计算机视觉模型常用评价指标_平均交并比-程序员宅基地

文章浏览阅读3.6k次,点赞9次,收藏36次。分类任务常用准确率、精确率、召回率、F1_scores、ROC曲线等指标来评价模型的优劣,当然这些基础指标也可以用来评价分割模型或检测模型,它们基本上是可以通用的。混淆矩阵是对分类问题预测结果的总结,也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。混淆矩阵中含有4个分类问题的基础指标,如下表所示。........._平均交并比

提高安全投资回报:威胁建模和OPEN FAIR风险分析-程序员宅基地

文章浏览阅读1.1k次,点赞6次,收藏8次。我们可以从当前的现实,即组织盲目地将资源投入到建议和合规法规中,而不评估预期收益,转向新的现实,即他们批判性地思考组织需要什么,以便以正确的成本获得足够的安全性。根据威胁建模的建议,通过利用Open FAIR流程来分析不同控制组合的影响,组织可以有效地确定哪组控制对降低系统的风险最有效。更重要的是,组织可以通过考虑风险的总体降低以及实施这些控制的成本来决定给定系统的最佳控制集。安全被视为“做生意的成本”。威胁建模是一个过程,可以帮助您了解特定系统的安全威胁,确定这些威胁的潜在损失,并建立适当的缓解措施。

【Android】Android中 Paint 字体 粗细等属性的一些设置_android java paint画字字体粗-程序员宅基地

文章浏览阅读2.3k次。【Android】Android中 Paint 字体 粗细等属性的一些设置_android java paint画字字体粗

机器人的振动控制问题_医疗机器人残余振动产生的原因-程序员宅基地

文章浏览阅读3.9k次,点赞5次,收藏41次。当机器人控制系统的设计将关节柔性忽略时,也许电机的运动位置能够被较为精确的控制,然而在加速度很高的情况下,大传动力会导致机器人的连杆位置与电机位置出现较大偏差,同时在运动结束时机器人连杆将在其平衡位置附近进行较长时间的振动。方案1:基于反馈的振动控制如果我们可以较为精确的同时测量机器人电机与连杆的位置甚至速度,那么便有可能通过机器人连杆轨迹与参考运动轨迹的偏差来调整电机的控制力矩,从而实现对机器人连杆位置的精确控制来消除由于弹性变形导致的振动。这种反馈控制问题可以通过例如Integrator Bac.._医疗机器人残余振动产生的原因

gdal对栅格数据进行重投影以及重采样_怎样把0.00083°的栅格数据重采样成0.25°-程序员宅基地

文章浏览阅读2.7k次,点赞3次,收藏13次。最近要用服务器处理数据,但是服务器上没有arcpy,所以重投影以及重采样的任务只能交给gdal来做,这里记录一下我的代码:首先,我的目的是将land_怎样把0.00083°的栅格数据重采样成0.25°