文件处理习题

from pathlib import Path
import random
from string import ascii_lowercase
import shutil


dirs = Path('E:/test')
bases = Path('z/s/w/a/')

print(dirs / bases)
(dirs / bases ).mkdir(parents=True,exist_ok=True)

print([bases] + list(bases.parents)[:-1])
dirslist = [bases] + list(bases.parents)[:-1]

namelist = (''.join (random.choices(ascii_lowercase,k=4)) for _ in range(50))


for i in namelist:
    (dirs / random.choice(dirslist) /i).touch()


def ignore_files(src,names,s =set('xyz')):
    # ret = set()
    #s = set('xyz')
    # for i in names:
    #     if i[0] not in s and Path(src,i).is_file():
    #         ret.add(i)
    #return {i for i in names if i[0] not in s and Path(src,i).is_file()}
    return set(filter(lambda i:i[0] not in s and Path(src,i).is_file(),names))
shutil.copytree(str(dirs / 'z'),'E:/test/dirs',ignore=ignore_files)

你可能感兴趣的:(python基础)