python标准库(第七讲)

Posted 小鹏linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python标准库(第七讲)相关的知识,希望对你有一定的参考价值。

 

Python学习第七篇:sys标准库

Python学习第七篇:sys标准库

——

活动地址:CSDN21天学习挑战赛

——

Python的sys模块提供访问由解释器使用或维护的变量的接口,并提供了一些函数用来和解释器进行交互,操控Python的运行时环境。

要进行使用,直接导入即可。

import sys

——

常用变量

sys.version

返回Python解释器版本号;用于某程序需要用指定版本号运行

import sys
print(sys.version)

——

sys.maxsize

表示操作系统承载的最大int值

import sys
print(sys.maxsize)

——

sys.maxunicode

给出最大Unicode代码点值的整数,即1114111(十六进制0x10FFFF)。

import sys
print(sys.maxunicode)

——

sys.path

返回当前脚本的path环境变量,如果没有python就找到

import sys
print(sys.path)

——

sys.platform

返回操作系统平台名称,在编写跨平台应用时很有用
windows 返回"win32"
linux 返回 “linux”
mac 返回 “darwin”

import sys
print(sys.platform)

——

sys.argv 的使用

将python脚本运行时的脚本名以及参数作为一个list。
实现从程序外部像程序内容传递参数,即在命令行中添加参数。

这个在一些工具脚本中用的挺多的。

打印认识sys.argv 中的列表

import sys

print(sys.argv)
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])

需要在命令行中执行输入参数。
第一个参数 argv[0] 为执行此python代码的文件名。
第二个参数 argv[1] 之后才是我们输入的其它参数。

通过输入的sys.argv 参数实现功能。

import sys

def login(username,password):
    #username = str(username)
    #password = str(password)
    if (username == 'admin' and password == '123456'):
        print('login success')
    elif (username == 'admin' and password != '123456'):
        print('password error')
    elif (username != 'admin' and password == '123456'):
        print('username error')
    else:
        print('login failed')

login(sys.argv[1],sys.argv[2])

把命令行中的参数作为 login() 函数中的形参执行。

——

sys.executable

一个字符串,给出Python解释器的可执行二进制文件的绝对路径。
如果Python无法检索其可执行文件的真实路径,sys.executable则将为空字符串或None。

import sys
print(sys.executable)

——

sys.byteorder

本地字节顺序的指示符——在大端序(最高有效位优先)操作系统上值为 ‘big’ ,在小端序(最低有效位优先)操作系统上为 'little

import sys
print(sys.byteorder)


——

sys.version_info

包含版本号的五个组件的元组:major,minor, micro,releaselevel和serial。

import sys
print(sys.version_info)


——

sys.api_version

此解释器的C API版本。

import sys
print(sys.api_version)


——

sys.stdin/sys.stdout/sys.stderr

标准输入、输出、错误。

import sys

print(sys.stdin)
print(sys.stdout)
print(sys.stderr)

——

常用方法

sys.wodules 的使用

返回系统导入的模块字段,key是模块名,value是模块

import sys
print(sys.modules)

——

sys.modules.keys()

返回所有已导入的模块名列表

import sys
print(sys.modules.keys())

——

sys.getdefaultencoding()

返回Unicode实现使用的当前默认字符串编码的名称。

import sys
print(sys.getdefaultencoding())

——

sys.getfilesystemencoding()

返回用于在Unicode文件名和字节文件名之间进行转换的编码名称

import sys
print(sys.getfilesystemencoding())

——

sys.getrecursionlimit()

返回最大递归次数

import sys
print(sys.getrecursionlimit())

——

sys.getsizeof()

获取对象占用的内存大小(用字节表示)

import sys
for obj in [int(),float(),list(),set(),dict(),object()]:
    print(str(obj.__class__).ljust(20), sys.getsizeof(obj))

——

getrefcount(obj)

返回obj的引用计数。返回的计数通常比预期的高一个,因为它包含(临时)引用作为参数。

import sys

a=[1,2,3]
b=a
c=b
print(sys.getrefcount(a))
print(sys.getrefcount(c))

有点不理解为什么这样,引用计数,c的引用奇数为什么是4 。

——

sys.exc_info()

获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息

import sys
print(sys.exc_info())

——

sys.getwindowsversion() 的使用

获取Windows的版本,Windows系统中有效

import sys
print(sys.getwindowsversion())


——

sys.stdin.readline()

从标准输入读一行,会读取末尾的换行符, 默认输入的格式是字符串,如果是int,float类型则需要强制转换。

和 input()方法类似, 不同的是input()括号内可以直接填写说明文字

import sys

print('stdin输入:')
a = sys.stdin.readline()
b = input('input输入:')
print(a)
print(b)
print('a的长度:',len(a))
print('b的长度:',len(b))

stdin 和 input 输入的都是 abc ,但是 a 的长度是 4 。
因为 sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\\n',input()会把‘\\n’忽略.

以上是关于python标准库(第七讲)的主要内容,如果未能解决你的问题,请参考以下文章

系统架构设计师教程|第七讲

系统架构设计师教程|第七讲

《从入门到精通云服务器》第七讲—IAASPAASSAAS

第七讲:使用云服务器搭建自己的邮件服务

第七讲:使用云服务器搭建自己的邮件服务

第七讲:使用云服务器搭建自己的邮件服务