sys模块

sys模块

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

sys.argv详解

#sys.argv[0]表示代码本身文件路径
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,sys.argv其实可以看作是一个列表(序列),所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

# 对于一个test.py文件

import sys
a=sys.argv
b=sys.argv[0]
print(a)
print(b)

# 命令行运行 python test.py
# ['c:/Users/Administrator/Desktop/test/test.py']
# c:/Users/Administrator/Desktop/test/test.py

------------------------------------------------------------

#改进版test.py

import sys
a=sys.argv[1]
b=sys.argv[1:]
print(a)
print(b)

#python test.py a b c

#a 
#['a', 'b', 'c']

#参数位置是用空格隔开的

打印进度条

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

# 指定宽度

print('[%-15s]' %'#')       #-15 左对齐总宽度是15
# [#              ]
print('[%-15s]' %'##')
# [##             ]
print('[%-15s]' %'###')
# [###            ]
print('[%-15s]' %'###############')
# [###############]


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

# 可传参来控制宽度

print('[%%-%ds]' %50)        #[%-50s]
print(('[%%-%ds]' %50) %'#')
print(('[%%-%ds]' %50) %'##')
print(('[%%-%ds]' %50) %'###')

# ==实现打印进度条函数==

import sys


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
posted @ 2019-04-18 17:49  樵夫-justin  阅读(107)  评论(0编辑  收藏  举报