python_复制路径
其中变量都是可以设置的
如果不想创建目录到对应注释下注释掉就好了
此脚本还加入了set条件 ‘xyz’,如果有需求可以使用,没需求也可以注释掉
from pathlib import Path
import shutil
from string import ascii_lowercase
import random
#工作目录
basedir = Path('d:/python')
subdir = Path('a/b/c/d')
dstdir = Path('dst')
dirs = (subdir,*subdir.parents)[:-1]
print (dirs)
#创建目录 mkdir
(basedir / subdir).mkdir(parents=True,exist_ok=True)
#随机名称
filename = ("".join(random.choices(ascii_lowercase, k=4 ))for i in range(50))
#创建文件共50个,随机创建
for name in filename:
(basedir /random.choice(dirs) / name ).touch()
heads = set('xyz')
#过滤 是xyz开头的文件
def ignore_files(src,names):
return {name for name in names if name[0] not in heads and not Path(src,name).is_dir()}
#删除原有dst目录,确保目录为空
shutil.rmtree(str(basedir/dstdir),True)
#将文件copy到目的目录下
shutil.copytree(str(basedir / 'a'),str(basedir / dstdir ),ignore = ignore_files)
print ('*' * 30 )
for f in (basedir / dstdir).rglob('*') :
print (f)