引入

1.什么是 sys 模块

  • sys 模块是与 Python 解释器交互的一个接口
  • 该模块提供对解释器使用或维护的一些变量的访问和获取
  • 它提供了许多函数和变量来处理 Python 运行时环境的不同部分

一.常见用法介绍

1.sys.argv

  • 实现从程序的外部向程序传递参数
  • 返回的是一个列表, 第一个元素是程序文件名, 第二个元素是程序外部传入的参数
  • 用法演示 :
import sysprint(sys.argv)
test = sys.argv[1]
if test == "shawn":print("i am shawn")
elif test == "song":print("i am song")

  • 在终端运行时传入一个参数

2.sys.path

  • 获取指定模块搜索路径的字符串集合, 返回的是一个列表 (表示可以使用 append或者insert)
  • 可以将写好的模块放入某个路径下, 然后将这个路径添加到 sys.path 里面, import时就可以找到
  • 用法演示 :
import sysprint(sys.path)
'''
['F:Pycharm FilePycharmProjectspython正课day17',
'F:Pycharm File',
'J:PyCharm 2020.2.3pluginspythonhelperspycharm_display',
'K:python37python37.zip',
'K:python37DLLs',
'K:python37lib',
'K:python37',
'K:python37libsite-packages',
'J:PyCharm 2020.2.3pluginspythonhelperspycharm_matplotlib_backend']
'''可以发现是一个列表 (代表着可以使用 "append" 功能向里面添加路径)第一个路径是当前执行文件所在的目录第二个是整个项目的路径, "PyCharm" 的优化 (在别的编辑器上没有,可以忽略)第四个是 "zip" 格式压缩包, 其实它是python解释器,里面放的是内置以及标准库模块其他的一些都是第三方库或者自定义下载的模块

  • 添加路径
import sys
sys.path.append("[文件路径]")例:
import sys
sys.path.append("F:Pycharm FilePycharmProjectspython正课day10")
print(sys.path[-1])  # F:Pycharm FilePycharmProjectspython正课day10

3.sys.exit(n)

  • 退出程序, 正常退出时 sys.exit(0), 其他为异常退出
  • 一般情况下运行到主程序尾部, 解释器就正常退出了, 但如果想要中途退出, 就可以调用 sys.exit 函数

ps : exit()运用在交互式shell中,而sys.exit主要用于程序中,二者功能类似

4.sys.version

  • 获取 Python 解释程序的版本信息
import sysprint(sys.version)
# 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]

5.sys.platform

  • 返回操作系统平台名称
import sysprint(sys.platform)  # win32

6.sys.maxint 与 sys.maxsize

  • 最大的 int 值
  • Python3 中删除了 sys.maxint常量, 因为不再对整数值进行限制
import sysprint(sys.maxint)
# AttributeError: module 'sys' has no attribute 'maxint'
print(sys.maxsize)
# 9223372036854775807

7.sys.getdefaultencoding( )

  • 获取解释器默认编码
import sysprint(sys.getdefaultencoding())  # utf-8

8.sys.getfilesystemencoding( )

  • 获取内存数据存到文件里的默认编码
import sysprint(sys.getfilesystemencoding())  # utf-8

9.sys.getrecursionlimit( )

  • 获取最大递归层数
import sysprint(sys.encursionlimit())  # 1000

10.sys.setrecursionlimit( )

  • 设置最大递归层数
import syssys.setrecursionlimit(1314)
print(sys.getrecursionlimit())  # 1314

11.sys.stdin.readline( )

  • 标准输入
import sys res = sys.stdin.readline()
print(res)
songha  # 这是控制台输入的字符串
songha  # 这是 print 输出的字符串 "songhan"

12.sys.stdout.write("xxx")

  • 标准输出 (相比较 print 能更好的控制输出)
import syssys.stdout.write('shawnn')  # Shawn

  • 模拟简单进度条动态加载
import sys , timefor i in range(50):sys.stdout.write("█")time.sleep(0.1)sys.stdout.flush()  # 刷新显示到屏幕上
# ██████████████████████████████████████████████████ 动态的加载进度条

二.模拟进度条打印

 知识储备
'%-50s'  # "%":字符串格式化; "-":左对齐,数字和字符串默认都是右对齐; "50":代表我设置的宽度
'r'  # 表示让光标跳到行首"print"模拟输出进度条效果,宽度是"40",传入的是"█"
print("▌%-40s▌" %'█')
print("▌%-40s▌" %'██')
print("▌%-40s▌" %'███')
print("▌%-40s▌" %'████')
print("▌%-40s▌" %'█████')
'''输出
▌█                                       ▌
▌██                                      ▌
▌███                                     ▌
▌████                                    ▌
▌█████                                   ▌
'''打印百分比"%",第一个是传值,第三个是取消第二个百分号的特殊意义
print('%s%%' %(10))
print('%s%%' %(30))
print('%s%%' %(80))
print('%s%%' %(100))
'''输出
10%
30%
80%
100%
'''使用参数来实现可变宽度
print("▌%%-%ds▌" % 40)  #  "▌%-40s▌"
print(("▌%%-%ds▌" % 40) % "██")
print(("▌%%-%ds▌" % 40) % "███")
print(("▌%%-%ds▌" % 40) % "████")
print(("▌%%-%ds▌" % 40) % "█████")开始实现:
def progress(percent, symbol='█', width=40):if percent > 1:     # 超过 100% 的时候让其停在 1percent = 1     # 可以避免进度条溢出show_progress = ("▌%%-%ds▌" % width) % (int(percent * width) * symbol)print("r%s %.2f%%" % (show_progress, percent * 100), end='')def plan():data_size = 1025                  # 传输数据recv_size = 0                     # 初始值为0while recv_size < data_size:time.sleep(0.1)               # 模拟数据的传输延迟recv_size+=150                # 每次收150percent=recv_size / data_size # 接收的比例 progress(percent, width=40)   # 进度条的宽度50plan()
# ▌████████████████████████████████████████▌ 100.00%

qt调用import sys库_Python模块之 sys 模块相关推荐

  1. Qt调用CUDA动态库及配置

    本文配置环境:Win7(x64)+VS2012+CUDA+Qt5.5.0 1.首先保证CUDA集成到VS下(如下图顺利安装Nsight for VS2012).CUDA安装比较简单,选自定义安装,然后 ...

  2. python调用matlab工具库_Python第三方常用工具、库、框架等

    Python ImagingLibrary(PIL):它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换.打印和显示.还能进行一些图形效果的处理,如图形的放大.缩小和旋 ...

  3. qt调用import sys库_QTCreator调用动态库实例

    在 linux 中, qt 里面已经集成了最新的开发平台 QT Creator ,下面是我练习调用动态 库( .so 文件)的例程: 1 .打开 QT Creator ,点击 File -> N ...

  4. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

  5. python调用c++动态库_Python应用:调用C/C++动态链接库的方法详解

    Linux系统下调用动态库(.so) 1.linuxany.c代码如下: #include "stdio.h" void display(char* msg){ printf(&q ...

  6. python调用c++动态库_Python调用C/C++动态链接库的方法

    本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: //hello.h #ifdef E ...

  7. python调用.a静态库_Python 调用 C

    了解了相关资料 不折腾的方法有(以往文章有): pypy,numba,numpy 但都不是 纯正的 C 折腾的: cffi,Cython,Boost.Python,Cpython 自带模块,SWIG ...

  8. Qt 调用CUDA静态库和动态库生成与配置

    前言 通过将CUDA相关计算操作放在库中,方便在项目中调用,省去了每次编译cu文件的麻烦,也便于集成到其他平台上. 关于部署CUDA加速的程序时,往往对CUDA加速的程序编译为动态链接库或者静态链接库 ...

  9. Qt 调用Python引擎混合编程

    0.前言 使用Qt和Python做混合编程,充分发挥Qt GUI的图形化框架优势和Python数据处理的计算能力.复杂的计算可用到Python众多三方库,将Python需要执行的功能写成py文件,做成 ...

最新文章

  1. python编程100例头条-python 简单爬取今日头条热点新闻(一)
  2. QT 中 关键字讲解(emit,signal,slot)以及使用
  3. Ubuntu16.04 安装Python开发环境
  4. 关于Echarts的填坑之旅
  5. java设计模式迭代器模式_迭代器模式和Java
  6. 1053.互换最大最小数
  7. python中的help和dir_Python中help()和dir()函数的用法是什么?
  8. 强化学习中的各类算法
  9. http头部 Expect
  10. 《C#图解教程》 总览
  11. IDEA 如何根据代码自动生成类图
  12. Python实现微信机器人——itchat库
  13. Power BI Desktop 中的数据源
  14. 树莓派安装中文输入法
  15. namesilo修改域名服务器,Namesilo, godaddy和万网域名修改NS的方法
  16. 极虎病毒:虎年第一猛毒详解
  17. 第4节:alphapose项目运行和参数
  18. Grade for Android 之二:Groovy 与Java的语法区别
  19. emc re 整改 超标_RE102测试中单点超标且高频有杂散如何整改?
  20. vulnhub——ICA1靶机

热门文章

  1. 从Tom说JSP原理
  2. 哪里学php开发,哪里学web开发
  3. 【Git、GitHub、GitLab】七 git中分支的删除以及出现分离头指针的情况
  4. Hive中COUNT的高级用法(条件过滤等)
  5. Sql语句之递归查询
  6. Spring的常见问题及答案
  7. @jsonignore的作用
  8. 基于FlashPaper的文档播放器
  9. Daily Scrum 10.29
  10. 公司间交易学习笔记---概述