"""Recursively copy a directory but skip undesired files anddirectories (CVS, backup files, pyc files, etc)"""import sysimport osimport shutilverbose = 1debug = 0def isclean(name):if name == 'CVS': return 0if name == '.cvsignore': return 0if name == '.DS_store': return 0if name == '.svn': return 0if name.endswith('~'): return 0if name.endswith('.BAK'): return 0if name.endswith('.pyc'): return 0if name.endswith('.pyo'): return 0if name.endswith('.orig'): return 0return 1def copycleandir(src, dst):for cursrc, dirs, files in os.walk(src):assert cursrc.startswith(src)curdst = dst + cursrc[len(src):]if verbose:print("mkdir", curdst)if not debug:if not os.path.exists(curdst):os.makedirs(curdst)for fn in files:if isclean(fn):if verbose:print("copy", os.path.join(cursrc, fn), os.path.join(curdst, fn))if not debug:shutil.copy2(os.path.join(cursrc, fn), os.path.join(curdst, fn))else:if verbose:print("skipfile", os.path.join(cursrc, fn))for i in range(len(dirs)-1, -1, -1):if not isclean(dirs[i]):if verbose:print("skipdir", os.path.join(cursrc, dirs[i]))del dirs[i]def main():if len(sys.argv) != 3:sys.stderr.write("Usage: %s srcdir dstdir\n" % sys.argv[0])sys.exit(1)copycleandir(sys.argv[1], sys.argv[2])if __name__ == '__main__':main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。