美文网首页
sys模块:命令行传参

sys模块:命令行传参

作者: 阿登20 | 来源:发表于2020-09-01 22:39 被阅读0次

    一、 常用方法

    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)
    

    相关文章

      网友评论

          本文标题:sys模块:命令行传参

          本文链接:https://www.haomeiwen.com/subject/jqvbsktx.html