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
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)