用途:文件转移——把层层嵌套的文件夹下的所有文件单拎出来,放入新的文件夹。比如 文件夹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)