一个将源目录下所有文件(含子目录)拷贝到一个新文件夹的小程序

用途:文件转移——把层层嵌套的文件夹下的所有文件单拎出来,放入新的文件夹。比如 文件夹1 下有 文件夹2,文件夹2 下有 1.txt文件 和 3文件夹,3文件夹 下有2.txt 3.txt

现在要把1.txt 2.txt 3.txt全都拷贝到 文件夹NEW 下

import os     
import shutil  #用于文件读写操作
source_directory=r"F:\工作\研究生学习\参考文献\English_SCI\TheTop"   #源文件存放的source文件夹
target_directory=r"F:\工作\研究生学习\参考文献\TopSCI"    #目标文件夹
l1=os.listdir(source_directory)  #列举源文件夹内所有文件和目录的“str名称”,注意只有名称不是真实路径
def copy_file(source_directory):    #定义函数
    l1=os.listdir(source_directory)   #列举原目标文件夹内——所有文件夹或者文件的名称,出来是一个list——此方法不会深入到子目录,只列举第一层
    for i in l1:
        source_f_d=os.path.join(source_directory,i)  #合成真实的文件路径,因为listdir列举到的,只有名称不是路径,所以这里合成一下
        if os.path.isfile(source_f_d):   #如果是文件,则拷贝
            shutil.copy(source_f_d,target_directory)   #shutil终于出场,它负责拷贝源文件到目标文件夹
        if os.path.isdir(source_f_d):   #如果是文件夹(目录),则循环进入定义的函数,只是传入函数的参数,变成此时的文件夹(目录)的名称
            copy_file(source_f_d)   #循环引用函数,确保不放过每一个子目录下面的文件
copy_file(source_directory)


你可能感兴趣的:(Python)