Python 复制文件和目录

复制文件

无非就是一个读取文件和写入文件的操作

def copy_file(src_path,target_path):
    # 注意文件可能是视频,图片,所以用rb和wb操作较好
    # 如果文件过大建议使用ab进行写入,一次读取1024个字节
    fp1 = open(src_path, 'rb')
    # fp2 = open(file_path2,'wb')
    fp2 = open(target_path, 'ab')
    while True:
        content = fp1.read(1024)
        if not content:
            break
        fp2.write(content)
    # content = fp1.read()
    # fp2.write(content)

复制目录

注意:使用自己的目录路径(这里我就直接使用上面的复制文件的函数了)

# 遍历sourcePath下的所有子目录和子文件
#   1, 如果是子文件,则复制文件
#   2, 如果是子目录,在目标目录创建相同的目录名称,递归调用
#  注意:子文件或子目录的绝对路径
import os

def copy_file(src_path,target_path):
    # 注意文件可能是视频,图片,所以用rb和wb操作较好
    # 如果文件过大建议使用ab进行写入,一次读取1024个字节
    fp1 = open(src_path, 'rb')
    # fp2 = open(file_path2,'wb')
    fp2 = open(target_path, 'ab')
    while True:
        content = fp1.read(1024)
        if not content:
            break
        fp2.write(content)
    # content = fp1.read()
    # fp2.write(content)

def copyPath(sourcePath, targetPath):

    # 判断原目录是否存在
    if not os.path.exists(sourcePath):
        return "目录不存在"

    # 判断目标目录是否存在,如果不存在则创建
    if not os.path.exists(targetPath):
        os.mkdir(targetPath)
    list_dir = os.listdir(sourcePath)
    for dir in list_dir:
        file_path1 = os.path.join(sourcePath,dir)
        file_path2 = os.path.join(targetPath,dir)
        if os.path.isfile(file_path1):
            copy_file(file_path1,file_path2)
        else:
        # 是文件夹就进行递归
            copyPath(file_path1,file_path2)


if __name__ == "__main__":
    # 将sourcePath目录的所有内容拷贝到targetPath目录下
    sourcePath = r"E:\CloudMusic\2101\1Python基础\第03周\day13"
    targetPath = r"E:\CloudMusic\2101\1Python基础\第03周\day13-1"
    copyPath(sourcePath, targetPath)
QAQ

你可能感兴趣的:(python基础,python,文件操作,复制文件和目录)