天天看点

Python 文件复制及目录复制(递归)os-操作系统接口模块目录复制

os-操作系统接口模块

该模块提供了一些方便使用操作系统相关功能的函数。

目录复制

文件复制就是读写操作。

目录复制就是遍历其中的所有文件,但是存在文件夹是复制不了的,这里我们就需要使用到递归。

  1. 如果需要使用该模块必需导入os
import os
           
  1. 我们先定义一个方法,用来进行文件复制
def copyFile(f1,f2): # 传入源地址、操作地址
		# rb以一个二进制的方式打开文件,只读取
		# wb 以一个二进制方式打开文件,只写入
		# 注意要加引号
	    rf1 = open(f1,"rb")  
	    wf2 = open(f2,"wb")
	    # 读取文件的全部内容,存入序列中
	    content = rf1.readlines()
	    # 将content 遍历出来
	    for i in content:
	        wf2.write(i)
	    # 记得关闭文件
	    wf2.close()
	    rf1.close()
           
  1. 文件夹复制方法。传入源地址以及目的地址,使用os.listdir()方法遍历源地址f1底下的所有文件,并存入a中,使用os.mkdir()方法创建文件夹,join方法将f1地址与遍历出来的文件名进行拼接,file2同理。在进行判断如果源文件是文件的话进行直接复制。如果为文件夹的话,调用本身,遍历文件夹中所有的文件信息,进行复制。
# 目录复制函数
def copyDir(f1,f2):
    a=os.listdir(f1)
    os.mkdir(f2)
    for i in a:
        file1 = os.path.join(f1,i)
        file2 = os.path.join(f2,i)
        if os.path.isfile(file1):
            copyFile(file1 , file2)

        # 递归写法 调用自己本身
        if os.path.isdir(file1):
            copyDir(file1,file2)

           
  1. 最后。
# 第一个参数是源地址,第二个为目的地址
copyDir('./file','./file1')
           
  1. 测试结果
    Python 文件复制及目录复制(递归)os-操作系统接口模块目录复制