shutil模块

本文详细介绍了Python的shutil模块,包括copyfileobj、copyfile、copymode、copystat、copy、copy2、copytree、rmtree和move等函数,用于复制、移动文件和目录,以及复制文件的权限和元数据。提供了多个示例说明各函数的使用方法和注意事项。
摘要由CSDN通过智能技术生成

shutil.copyfileobj(fsrc, fdst[, length]):复制文件对象(受文件指针seek影响)

将类似文件的对象fsrc的内容复制到类似文件的对象fdst。整数length(如果给出)是缓冲区大小。具体地,负的长度值意味着复制数据而不使块中的源数据循环;默认情况下,以块为单位读取数据,以避免不受控制的内存消耗。请注意,如果fsrc对象的当前文件位置不为0,则只会复制当前文件位置到文件末尾的内容
例如:

import shutil
from pathlib import Path

p1 = Path('E:/test/a.txt')
p1.parent.mkdir(parents=True,exist_ok=True)
p1.touch()

with open('E:/test/a.txt','r+') as f1:
    f1.write('abcd\n12345')
    f1.flush()
    f1.seek(0)   							#注意指针问题,否则copy内容为空
    with open('E:/test/a1.txt','w+') as f2:
        shutil.copyfileobj(f1,f2)

copyfileobj的源代码:

def copyfileobj(fsrc, fdst, length=16*1024):
    """copy data from file-like object fsrc to file-like object fdst"""
    while 1:   								#死循环
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值