03 完善shutil.move 和shutil.copytree

这两个命令都是开放性的,需要建立新文件夹。适用于新建情形。但实际工作中明显更多要用到从一个文件夹移动和复制到另一个文件夹,早先没有认真考察,最后决定来解决这个问题,其实非常简单。

以下的模块MKwjcz的内容就是上一篇文章中的内容,实际上就是用到了os.listdir(path)而已。但是我认为文件夹和文件具有完全不同的性质,将它们分开处理是清晰的,虽然可能有点啰嗦。

我个人的经验是,宁可逐步序化,不要眉毛胡子一把抓,因为写代码容易,发现代码的问题却非常难。

# -*- coding:utf-8 -*-

import os

import MKwjcz

import shutil


# 16 将一个文件夹的内容移动到另一个文件夹




def ZJmv(pathx,pathy):
    '''
        直接将一个文件夹里面的内容移动到另一个文件夹
    
        shutil.move主要是针对新建文件夹的,把一个文件夹里的内容复制到新建的文件夹
        
    '''
    Lb1 = MKwjcz.DFfl(pathx)[0]      
    
    Lb2 = MKwjcz.DFfl(pathx)[1]

    for xi in Lb1:

        shutil.move(pathx+'/'+str(xi),pathy+'/'+str(xi))

    for xi in Lb2:

        shutil.move(pathx+'/'+str(xi),pathy+'/'+str(xi))  
     
        

##ZJmv('D:/ZDCS系统/工作区/测试','D:/ZDCS系统/人机对话区/新建文件夹')

# 17 将一个文件夹的内容复制到另一个文件夹


def ZJcp(pathx,pathy):
    '''
        直接将一个文件夹里面的内容复制到另一个文件夹
    
        shutil.copy主要是针对新建文件夹的,把一个文件夹里的内容复制到新建的文件夹
        
    '''
    Lb1 = MKwjcz.DFfl(pathx)[0]      
    
    Lb2 = MKwjcz.DFfl(pathx)[1]

    for xi in Lb1:

        shutil.copytree(pathx+'/'+str(xi),pathy+'/'+str(xi))

    for xi in Lb2:

        shutil.copyfile(pathx+'/'+str(xi),pathy+'/'+str(xi))  
     
##ZJcp('D:/ZDCS系统/工作区/测试','D:/ZDCS系统/人机对话区/新建文件夹')









测试非常好用,我印象中看过别人的一段改造代码好像很复杂,搞得我以为这个问题很麻烦,没想到2分钟就解决了这个巨大的烦恼。