python全栈 打印进度条/shutil模块

博客介绍了format函数的格式化输出,还提及模拟进度条及相关场景应用,同时介绍了shutil模块用于文件操作的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

format函数格式化输出

: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
^, <, > 分别是居中、左对齐、右对齐,后面带宽度
+ 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制。
# :0 填充0字符  > 对齐规格  10 长度 d 输出进制 
print('{:0>10d}'.format(1))
# 0000000001
print('{:+.2f}'.format(-1.23))
# -1.23

模拟进度条

/r:每次在行首打印
import time
res = ''
for i in range(50):
    res+='#'
    time.sleep(0.3)
    print('\r[%-50s]'%res,end='')

场景应用

模拟数据下载
import time
recv_size = 0
total_size = 333333
# 打印进度条功能
def progress(percent):
    if percent > 1 :
        percent = 1
    res = int(50*percent) * '#'
    print('\r[{:<50}]  {}%'.format(res,int(100*percent)),end='')

while recv_size<total_size:
    time.sleep(0.3)
    recv_size+=5000
    percent = recv_size / total_size
    progress(percent)

shutil模块(文件操作)

# copyfileobj方法只会拷贝文件内容
shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))

# copyfile拷贝文件
shutil.copyfile('f1.log', 'f2.log')

# shutil.copy(src, dst) 拷贝文件和权限
shutil.copy('f1.log', 'f2.log')

# shutil.copy2(src, dst) 拷贝文件和状态信息
shutil.copy2('f1.log', 'f2.log')

# shutil.copymode(src, dst)(前提是dst文件存在,不然报错)仅拷贝权限。内容、组、用户均不变
shutil.copymode('f1.log', 'f2.log')

# shutil.copystat(src, dst) 仅拷贝状态的信息,即文件属性,包括:mode bits, atime, mtime, flags
shutil.copystat('f1.log', 'f2.log')

shutil.ignore_patterns(*patterns)  #(忽略哪个文件,有选择性的拷贝)

# shutil.copytree(src, dst, symlinks=False, ignore=None) 递归的去拷贝文件夹
# *.pyc:以.pyc结尾的文件 tmp*:以tmp开头的文件
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))

# shutil.rmtree(path[, ignore_errors[, onerror]]) 递归的去删除文件
shutil.rmtree('folder1')

# shutil.move(src, dst) 递归的去移动文件,它类似mv命令,其实就是重命名。
shutil.move('folder1', 'folder3')

# shutil.make_archive(base_name, format,...)
# base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径, 如:www                        
# format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
# root_dir: 要压缩的文件夹路径(默认当前目录)
# owner: 用户,默认当前用户
# group: 组,默认当前组
# logger: 用于记录日志,通常是logging.Logger对象

# 将 /Users/wupeiqi/Downloads/test 下的文件打包放置 /Users/wupeiqi/目录
ret = shutil.make_archive("ww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')     

import tarfile

# 压缩
tar = tarfile.open('your.tar','w')
tar.add('/Users/wupeiqi/PycharmProjects/bbs2.log', arcname='bbs2.log')
tar.add('/Users/wupeiqi/PycharmProjects/cmdb.log', arcname='cmdb.log')
tar.close()

# 解压
tar = tarfile.open('your.tar','r')
tar.extractall()  # 可设置解压地址
tar.close()


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值