Example:
import shutil
# to copy file and change its name
shutil.copy2('c:/test/test.txt', 'c:/test.py')
# to copy entire directory
shutil.copytree('c:/test/', 'c:/test2/')
# to copy entire directory and ignore certain files
shutil.copytree('c:/test/', 'c:/test2/', ignore=shutil.ignore_patterns('*.pyc'))
# to copy entire directory and ignore both certain files and folders
import fnmatch
def ignorePatterns(patterns):
def _ignorePatterns(path, names):
ignoreList = []
for i in os.walk(path):
# to ignore all version folders (v0001, v0002, ...)
folderName = i[0].rpartition('/')[2]
if folderName.startswith('v') and folderName[1:].isdigit():
ignoreList.append(folderName)
else:
# ignore files
for pattern in patterns:
for f in fnmatch.filter(i[2], pattern):
ignoreList.append(f)
ignoreList = list(set(ignoreList))
return set(ignoreList)
return _ignorePatterns
patterns = ['*.pyc', '*.py~']
shutil.copytree('c:/test/', 'c:/test2/', ignore = ignorePatterns(patterns))
No comments:
Post a Comment