首页 > 编程语言 >python模块之sys

python模块之sys

时间:2023-08-14 11:37:49浏览次数:31  
标签:python percent sys Python 模块 print size


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



标签:python,percent,sys,Python,模块,print,size
From: https://blog.51cto.com/u_12667998/7074270

相关文章

  • python'__init__.py'文件中'__all__'的作用
    以前我以为__all__的作用是限制导出哪些函数或者变量,后来发现只有在fromxximport*语句中才是这样,而importxxx是不起作用的,后者是可以使用模块中的所有全局变量和函数的.例如下面的__init__.py文件:__all__=['brysj2','__author__']brysj2=88a1=99__author__......
  • IIS 请求筛选模块被配置为拒绝包含双重转义序列的请求。
    方法1:web.config内容如下:<?xmlversion="1.0"encoding="UTF-8"?><configuration><system.webServer><security><requestFilteringallowDoubleEscaping="true"/></security></system.webServer&g......
  • python中的__main__.py文件
    在Python中,__main__.py文件在几个方面发挥作用:使目录可执行:当你有一个目录(或称为包)并希望能够像执行脚本那样运行它时,__main__.py文件会被调用。例如,如果你有一个名为mypackage的目录,它包含一个__main__.py文件,那么你可以通过以下方式运行它:python-mmypackage在上......
  • 【Python&RS】GDAL库Warp函数介绍
    ​        GDAL(GeospatialDataAbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。 Python的GDAL库作为栅格数据的处理转换库,其支持几百种栅格数......
  • python 学习-函数-匹配替换等操作
    1.re.match匹配re.match(pattern,string)`:从字符串的开头匹配正则表达式,返回一个匹配对象。如果没有找到匹配的子串,返回`None`str='choice:['app1-ui','app2-ui']'#查找str是否以空格开头第一个有效字符是choice的的行,如果是打印okifre.match(r'\s+choice.*',str):......
  • Python第三方库pydash功能介绍
    Python第三方库pydash功能介绍本文来自ChatGPT的回答整理demo部分都验证过ok介绍pydash是一个Python库,用于提供类似于JavaScript库lodash的功能。lodash是一个在JavaScript中广泛使用的实用工具库,用于简化常见的操作,例如数组和对象的操作、函数式编程等。而pydas......
  • vite 找不到依赖模块:[plugin:vite:dep-pre-bundle]
    问题描述:运行项目时,出现[plugin:vite:dep-pre-bundle]错误。这种问题一般为依赖的包未正常配置相关字段,导致vite无法找到包的入口。遇到这种模块内、找不到引用模块的,都可以用路径别名来解决解决办法://vite.config.jsalias:[{find:'fs',replacement:'node_modules/......
  • python反射机制
    Python的反射机制是指在运行时获取、检查和修改对象的属性和方法。通过使用反射,我们可以动态地访问和操作对象的属性、调用方法,甚至创建新的属性和方法。Python提供了一些内置函数和特殊属性来实现反射机制:getattr(object,name[,default]):获取对象的属性值,如前面提到的。s......
  • 5个代码技巧,加速你的Python! 转载
    原文:https://mp.weixin.qq.com/s/xLIlcXfW1O8sNxGT7RvKrQ来自公众号:快学PythonPython作为一种功能强大的编程语言,因其简单易学而受到很多初学者的青睐。它的应用领域又非常广泛:科学计算、游戏开发、爬虫、人工智能、自动化办公、Web应用开发等等。而在数据科学领域中,Python是......
  • python实战练习:sorted函数排序后返回一个新列表,所以不用再套一层list函数进行转化了
        使用集合set去重后,如果想要返回结果为列表形式,不用在外层套list函数了,因为sorted排完序后会返回一个新列表。names=input().split("")print(sorted(set(names)))#不需要再套一层list函数了print(sorted(list(set(names)))) ......