文件夹下文件的拷贝

此次文件的拷贝主要利用python内置库shutil,shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能。

利用copyfile()方法,进行递归运算即可实现,保证源文件夹什么样,复制出来的就什么样。

具体代码如下:

import os
import shutil


def get_file_list(file_path):
	# 获取源文件夹下的内容
    file_names_list = os.listdir(file_path)
    checked_file_list = []
    for temp_file in file_names_list:
        checked_file_list.append(temp_file)
    return checked_file_list


def copy_file(copy_file_path, file_path, file_list):
	# 判断想要复制的路径是否存在,如果不存在就创建
    if not os.path.exists(copy_file_path):
        os.makedirs(copy_file_path)
    for i in range(len(file_list)):
    # 拼接文件夹和文件的路径
        old = os.path.join(file_path, file_list[i])
        new = os.path.join(copy_file_path, file_list[i])
        chose(old, new)


def chose(old, new):
	# 判断是不是文件,如果是文件直接copy
    if os.path.isfile(old):
        shutil.copyfile(old, new)
    # 如果是文件夹,调用方法获取文件夹下内容
    if os.path.isdir(old):
        sub_file_list = get_file_list(old)
        # 进行递归,重复操作
        copy_file(new, old, sub_file_list)


if __name__ == "__main__":
	# 源路径
    file_path = '/script/sonar_conf'
    # 拷贝路径
    copy_file_path = 'c:\\code\\phase2\\script\\copy_sonar_conf'
    file_list = get_file_list(file_path)
    # 拷贝方法
    copy_file(copy_file_path, file_path, file_list)

shutil库中还有很多其他的方法,可以看一看。
当然,方法不止一种,写的也不算好。继续努力。希望能帮到有需要的人。