1.随便简单些写了一下。直接粘结代码,只是简单的实现一下,还很多需要完善和扩展的地方,比如忽略掉后缀文件,删除文件
如果排除的某些的话可以用:
sourceF.find('.后缀')>0
2.注意路径格式。。
如果有中文路径的话,可能报错,我的解决方案:
编码为utf8, #coding:utf-8
当前脚本是指定目录下,所有的文件(包含子目录),拷贝到一个目录下。
源码:text.py
#coding:utf-8
#2015.5.8
import os
import os.path
import shutil
RootDir = "D:/Work/美术资源/手游动画" # Your root
TargetDir = "D:/Work/Code/project/cardgame/res/aninew" #Your target root
boss_dir = os.path.join(RootDir, "boss")
friend_dir = os.path.join(RootDir, "friend")
monster_dir = os.path.join(RootDir, "monster")
def copy_file(sourceDir, targetDir):
for f in os.listdir(sourceDir):
sourceF = os.path.join(sourceDir,f)
targetF = os.path.join(targetDir,f)
if os.path.isfile(sourceF):
do_copy_file(sourceF,targetF)
print sourceF
if os.path.isdir(sourceF):
copy_file(sourceF,TargetDir)
def do_copy_file(src_file, dst):
shutil.copy(src_file, dst)
if __name__=="__main__":
copy_file(boss_dir,TargetDir)
copy_file(friend_dir,TargetDir)
copy_file(monster_dir,TargetDir)
拷贝层级如果需要完全相同的话,需要创建文件夹,上面的代码判断是文件夹的时候,创建一下就可以.(os.mkdri(路径))
再贴一个写的测试bat
@echo off
echo startCopy
set rootDir="D:\PackerImg\CopyTest\from"
xcopy %rootDir% D:\PackerImg\CopyTest\To\ /s /y /D
pause
xcopy参数去网上自己查。xcopy拷贝文件目录 copy拷贝单个文件。看个人需求