当前位置 : 主页 > 手机开发 > harmonyos >

python模块之sys

来源:互联网 收集:自由互联 发布时间:2023-08-28
sys 模块提供许多函数和变量来处理 Python 运行时环境的不同部分 处理命令行参数 在解释器启动后, argv 列表 包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称. 处理模


sys 模块提供许多函数和变量来处理 Python 运行时环境的不同部分

处理命令行参数

在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称.

处理模块

path 列表是一个由目录名构成的列表, Python 从中查找扩展模块( Python 源模块, 编译模块,或者二进制扩展).

启动 Python 时,这个列表从根据内建规则, PYTHONPATH 环境变量的内容, 以及注册表( Windows 系统)等进行初始化.由于它只是一个普通的列表, 你可以在程序中对它进行操作,

使用sys模块查找内建模块

builtin_module_names 列表包含 Python 解释器中所有内建模块的名称

使用sys模块查找已导入的模块

modules 字典包含所有加载的模块. import 语句在从磁盘导入内容之前会先检查这个字典.

Python 在处理你的脚本之前就已经导入了很多模块.

使用sys模块获得当前平台

sys.platform  返回当前平台 出现如: "win32" "linux2" 等

处理标准输出/输入

标准输入和标准错误 (通常缩写为 stdout 和 stderr) 是内建在每一个 UNIX 系统中的管道。

当你 print 某些东西时,结果前往 stdout 管道;

当你的程序崩溃并打印出调试信息 (例如 Python 中的 traceback (错误跟踪)) 的时候,信息前往 stderr 管道

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模块

sys.argv           命令行参数          List          ,第一个元素是程序本身路径,其他参数sys.argv[i]         


          sys.exit(n)        退出程序,正常退出时exit(          0          )         


          sys.version        获取Python解释程序的版本信息         


          sys.maxint         最大的          Int          值         


          sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值         


          sys.platform       返回操作系统平台名称         


          sys.stdout.write(          'please:'          )         


          val           =           sys.stdin.readline()[:          -          1          ]


 打印进度条:

#=========知识储备==========
#进度条的效果
[#             ]
[##            ]
[###           ]
[####          ]

#指定宽度
print('[%-15s]' %'#')
print('[%-15s]' %'##')
print('[%-15s]' %'###')
print('[%-15s]' %'####')

#打印%
print('%s%%' %(100)) #第二个%号代表取消第一个%的特殊意义

#可传参来控制宽度
print('[%%-%ds]' %50) #[%-50s]
print(('[%%-%ds]' %50) %'#')
print(('[%%-%ds]' %50) %'##')
print(('[%%-%ds]' %50) %'###')


#=========实现打印进度条函数==========
import sys
import time

def progress(percent,width=50):
    if percent >= 1:
        percent=1
    show_str=('[%%-%ds]' %width) %(int(width*percent)*'#')
    print('\r%s %d%%' %(show_str,int(100*percent)),file=sys.stdout,flush=True,end='')


#=========应用==========
data_size=1025
recv_size=0
while recv_size < data_size:
    time.sleep(0.1) #模拟数据的传输延迟
    recv_size+=1024 #每次收1024

    percent=recv_size/data_size #接收的比例
    progress(percent,width=70) #进度条的宽度70



上一篇:优化:调参技巧
下一篇:没有了
网友评论