Python全栈开发系列——记录一些平时的小练习

目录

1、random生成随机验证码

2、time生成进度条

3、代码自动启动应用程序 

4、os查看磁盘或者文件夹下占用空间大小


1、random生成随机验证码

###
   利用random库生成随机验证码
###
# 随机模块 random
import random
def yzm():
	cholst = ""
	for i in range(4):
		# 大写字母 ASK码A-Z 65~90,chr返回ASK对应的值
		AZ = chr( random.randrange(65,91) )
		az = chr( random.randrange(97,123) )
		num = str( random.randrange(10) )
		lst = [AZ,az,num]
		# 把可能的字符都放在列表里 , 一次抽一个
		cholst += random.choice(lst)
	return cholst
res = yzm()
print(res)

2、time生成进度条

###生成进度条###
import time
def jdt(percent):
    if percent > 1:
        percent = 1
    # strvar表示进度条##的图形,每次输出多少个#,最多输入50个#表示100%
    strvar = int(50 * percent) * "#"
    print("\r[%-50s] %d%%" % (strvar,int(100 * percent)), end="")
# 模拟下载一个文件总大小102800字节,每次接收1024字节大小数据
# percent表示进度条的数字用于显示最右边
total_size = 1028000
recv_size = 0
while recv_size <= total_size:
    recv_size += 1024
    time.sleep(0.001)
    percent = recv_size / total_size
    jdt(percent)

3、代码自动启动应用程序 

###利用代码自动启动应用程序###
import os
print(os.environ["PATH"])
# 将路径添加到环境变量中,在执行命令时,通过路径去找对应程序,进行执行.
os.environ["PATH"] += r"F:\qq\Bin;"
print(os.environ["PATH"])
os.system("QQScLauncher")
os.system("D:\wechat\WeChat.exe")

4、os查看磁盘或者文件夹下占用空间大小

# coding=utf-8
# 使用Python 3运行
import os

# 工作中经常遇到win堡垒机磁盘不足现象,也不能用du -sh命令查看,利用脚本计算当前目录下大小,方便找到大文件所在
# 目前还需要继续验证逻辑和优化备注,日后添加自动排序大小展示
print("路径格式为" + "D:\\app\\xxx")
pathname = input('请输入搜索路径:')
pathname2 = pathname
# 切换到需要查询的工作目录
# os.chdir(r'D:\Users')
os.chdir(pathname)


# 获取文件夹下的文件大小  [url=https://www.jianshu.com/p/a5ec32322fd6]
def Get_Dir_Size(dir):
    size = 0
    for root, dirs, files in os.walk(dir):
        size += sum([os.path.getsize(os.path.join(root, name)) for name in files])
    return size


# python 文件大小显示kb、mb或gb等  [url=https://blog.csdn.net/mp624183768/article/details/84892999]
def Covert_File_Size(size):
    kb = 1024;
    mb = kb * 1024;
    gb = mb * 1024;
    tb = gb * 1024;
    if size >= tb:
        return "%.1fTB" % float(size / tb)
    if size >= gb:
        return "%.1fGB" % float(size / gb)
    if size >= mb:
        return "%.1fMB" % float(size / mb)
    if size >= kb:
        return "%.1fKB" % float(size / kb)


# 创建方法
def Print_Size_Of_Current_Dir():
    file_size = dict()  # 创建一个空的字典,用来存储我们的结果
    current_work_dir = os.curdir  # 指代当前目录,在windows系统下是'.'
    all_file = os.listdir(current_work_dir)  # 用列表列举当前目录中的文件名
    for each_file in all_file:  # 依次提取这个列表中的每一个元素(路径)
        if os.path.isdir(each_file) == True:  # 判断这个路径是否表示文件夹
            file_size.setdefault(each_file, Covert_File_Size(Get_Dir_Size(each_file)))
        else:  # 如果不是文件夹,即是有后缀的那些文件
            file_size.setdefault(each_file, Covert_File_Size(os.path.getsize(each_file)))
    # 下面我们来打印结果
    # 刚学两天,只能想到这样对结果进行展示排序,将循环中大小对应的GB、MB等存放到对应的全局变量,然后进行拼接,这样可以保证直接放到同一个字符串顺序乱掉,可根据需求自定义需要展示超过多少的文件
    gb = ""
    mb = ""
    kb = ""
    nb = ""
    for type_file in file_size:
        s = str(file_size[type_file])
        # pycharm高亮显示正常,cmd乱码
        resultdict = ('【%s】:【%s】' % (type_file, '\033[1;45m' + s + '\033[0m'))
        resultdictnone = ('【%s】:【%s】' % (type_file, '\033[1;45m 0K \033[0m'))
        if 'GB' in s: gb += (resultdict + "\r\n")
        if 'MB' in s: mb += (resultdict + "\r\n")
        if 'KB' in s: kb += (resultdict + "\r\n")
        if 'None' in s: nb += (resultdictnone + "\r\n")
    print(nb + kb + mb + gb)


Print_Size_Of_Current_Dir()
pathnamenext = input('继续搜索文件夹/..返回上一级/q退出:')

# 20210906:新补充交互式搜索文件夹展示,直接输入当前文件夹即可,不需要全路径;输入q退出,..返回上一级。
sign = True
while sign:
    if pathnamenext == "q":
        pathnamelast = pathname
        pathnamenext = input('Bye!')
        break
    elif pathnamenext == "..":
        pathnamelast2 = pathnamelast
        print('当前搜索路径为:' + pathnamelast)
        # pathnamelast4 = pathnamelast.rsplit("\\",1)[0]
        os.chdir(pathnamelast)
        Print_Size_Of_Current_Dir()
        pathnamenext = input('请重新执行脚本,返回上一层继续搜索待完善。')
        break
    elif os.path.isdir(pathnamenext):
        pathnamelast = pathname
        pathname += "\\"
        pathname += pathnamenext
        print('当前搜索路径为:' + pathname)
        os.chdir(pathname)
        Print_Size_Of_Current_Dir()
        pathnamenext = input('继续搜索文件夹/..返回上一级/q退出:')
    elif os.path.isfile(pathnamenext):
        pathnamelast = pathname
        print("检测到普通文件,无法继续向下查询")
        print('当前搜索路径为:' + pathnamelast)
        os.chdir(pathnamelast)
        Print_Size_Of_Current_Dir()
        pathnamenext = input('继续搜索文件夹/..返回上一级/q退出:')
    else:
        pathnamelast = pathname
        sign = False
        print("检测到特殊文件,无法继续向下查询")
        pathnamenext = input('继续搜索文件夹/..返回上一级/q退出:')
        break
windows执行脚本方法:
1、环境变量配置python的路径
2、将py脚本保存至utf-8编码的*.py文件
3、创建一个bat文件执行
   python D:\pyshell\disk-check.py
   pause

Guess you like

Origin blog.csdn.net/weixin_39855998/article/details/120071305