sys模块:命令行传参

2020-09-01  本文已影响0人  阿登20

一、 常用方法

1 sys.argv 命令行参数List,第一个元素是程序本身路径
2 sys.exit(n) 退出程序,正常退出时exit(0)
3 sys.version 获取Python解释程序的版本信息
4 sys.maxsize 最大的Int值
5 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
6 sys.platform 返回操作系统平台名称

案例:命令行 传参给sys.argv

# 文件路径 I:\python20\softwaredate\py_basics\内置模块\sys模块\sys_.py
import sys
def sum_tow(x,y):
    print("{}和{}的和等于{}".format(x,y,x+y))
    return x+y

print(sys.argv)
sum_tow(sys.argv[1],sys.argv[2])

命令行输入:python38 I:\python20\softwaredate\py_basics\内置模块\sys模块\sys_.py 3 5

image.png
import sys

# 命令行参数List,第一个元素是程序本身路径.通过索引能拿到 命令行输入的值
print(sys.argv) # ['I:/python20/softwaredate/py_basics/内置模块/sys模块/sys_.py']

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

# 获取python解释程序的版本信息
print(sys.version) # 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)]

# 最大的Int值
print(sys.maxsize) # 9223372036854775807
print(sys.maxunicode) # 1114111

# 返回模块的搜索路径,初始化使用PYTHONPATH环境变量的值
print(sys.path) # 列表

# 返回操作系统平台名称
print(sys.platform)

# 标准输出
sys.stdout.write('plese:')

# 标准输入
val = sys.stdin.readline()[:-1]

# 获取最大递归层次
print(sys.getrecursionlimit())

# 设置最大递归层次
sys.setrecursionlimit(1000)

# 获取解释器默认编码
print(sys.getdefaultencoding())

# 获取内存数据存到文件里的默认编码
print(sys.getfilesystemencoding())

二、打印进度条功能

print("[{:-<10}] {:.0%}".format("#",1))
print("[{:-<10}]".format("##"))
print("[{:-<10}]".format("###"))
print("[{:-<10}]".format("####"))
import time
res =""
num =0
for i in range(10):
    res += "#"
    num += 1
    time.sleep(0.3)
    print("\r[{:-<10}] {:.0%}".format(res, num/10),end="")

def buf(width):
    import time
    res = ""
    num = 0
    for i in range(width):
        res += "#"
        num += 1.1
        percent = num /width
        if percent >1:
            percent = 1
        time.sleep(0.3)
        print("\r[{0:-<{2}}] {1:.2%}".format(res, percent, width), end="")

buf(10)

# 假设有个下载功能,每次0.03秒下载1024 字节,下载小为102500
import time
recv_size=0
data_size=102500

while recv_size < data_size:
    recv_size += 1024 # 每次下载1024
    data_size = 102500
    percent = recv_size/data_size
    # 下面代码封装成一个函数
    if percent > 1:
        percent = 1
    res = "#"*int(20*percent)
    time.sleep(0.03)
    print("\r[{0:-<{2}}] {1:.2%}".format(res, percent, 20), end="")


def progress(percent,width=30):
    """
    percent:百分比
    width:宽度
    """
    if percent > 1:
        percent = 1
    res = "#" * int(width * percent)
    time.sleep(0.03)
    print("\r[{0:-<{2}}] {1:.2%}".format(res, percent, width), end="")


import time
recv_size=0
data_size=102500

while recv_size < data_size:
    recv_size += 1024 # 每次下载1024
    data_size = 102500
    percent = recv_size/data_size
    progress(percent, 20)
上一篇下一篇

猜你喜欢

热点阅读