• Python学习第七篇:sys标准库


    Python学习第七篇:sys标准库

    ——

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

    ——

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

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

    import sys
    
    • 1

    ——

    常用变量

    sys.version

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

    import sys
    print(sys.version)
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.maxsize

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

    import sys
    print(sys.maxsize)
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.maxunicode

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

    import sys
    print(sys.maxunicode)
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.path

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

    import sys
    print(sys.path)
    请添加图片描述
    ——

    sys.platform

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

    import sys
    print(sys.platform)
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.argv 的使用

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

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

    打印认识sys.argv 中的列表

    import sys
    
    print(sys.argv)
    print(sys.argv[0])
    print(sys.argv[1])
    print(sys.argv[2])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    需要在命令行中执行输入参数。
    第一个参数 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])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    把命令行中的参数作为 login() 函数中的形参执行。
    请添加图片描述

    ——

    sys.executable

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

    import sys
    print(sys.executable)
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.byteorder

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

    import sys
    print(sys.byteorder)
    
    • 1
    • 2

    请添加图片描述
    ——

    sys.version_info

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

    import sys
    print(sys.version_info)
    
    • 1
    • 2

    请添加图片描述
    ——

    sys.api_version

    此解释器的C API版本。

    import sys
    print(sys.api_version)
    
    • 1
    • 2

    请添加图片描述
    ——

    sys.stdin/sys.stdout/sys.stderr

    标准输入、输出、错误。

    import sys
    
    print(sys.stdin)
    print(sys.stdout)
    print(sys.stderr)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请添加图片描述

    ——

    常用方法

    sys.wodules 的使用

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

    import sys
    print(sys.modules)
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.modules.keys()

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

    import sys
    print(sys.modules.keys())
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.getdefaultencoding()

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

    import sys
    print(sys.getdefaultencoding())
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.getfilesystemencoding()

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

    import sys
    print(sys.getfilesystemencoding())
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.getrecursionlimit()

    返回最大递归次数

    import sys
    print(sys.getrecursionlimit())
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.getsizeof()

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

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

    请添加图片描述

    ——

    getrefcount(obj)

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

    import sys
    
    a=[1,2,3]
    b=a
    c=b
    print(sys.getrefcount(a))
    print(sys.getrefcount(c))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    将列表a赋值给变量b和c,这意味着b和c现在都指向列表a所指向的内存地址,而不是创建一个新的列表。
    然后列表有3个参数,sys.getrefcount()函数返回的引用计数包括传递给函数的参数本身,因此引用计数比你实际期望的多1 ,打印结果为 4
    请添加图片描述

    ——

    sys.exc_info()

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

    import sys
    print(sys.exc_info())
    
    • 1
    • 2

    请添加图片描述

    ——

    sys.getwindowsversion() 的使用

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

    import sys
    print(sys.getwindowsversion())
    
    • 1
    • 2

    请添加图片描述
    ——

    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))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

  • 相关阅读:
    温振传感器有几种传输方式?
    Golang跨平台UI框架之Wails(一)
    (四) Docker镜像
    70B大模型训练秘方① :数据集创建与评估
    php://filter协议在任意文件读取漏洞(附例题)
    [智能座舱]小鹏G9语音新功能介绍与分析
    力扣100题-07-三数之和
    [Power Query] 数据表规范性要求
    PriorityQueue常用接口介绍
    ts重点学习110-枚举类型的兼容性笔记
  • 原文地址:https://blog.csdn.net/Goodric/article/details/126365708