本文實例講述了Python實現拷貝 刪除文件夾的方法。分享給大家供大家參考,具體如下:
1. 拷貝文件夾
from shutil import copytree, ignore_patternscopytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))
注:shutil.copytree
實現
def copytree(src, dst, symlinks=False, ignore=None): names = os.listdir(src) if ignore is not None: ignored_names = ignore(src, names) else: ignored_names = set() os.makedirs(dst) errors = [] for name in names: if name in ignored_names: continue srcname = os.path.join(src, name) dstname = os.path.join(dst, name) try: if symlinks and os.path.islink(srcname): linkto = os.readlink(srcname) os.symlink(linkto, dstname) elif os.path.isdir(srcname): copytree(srcname, dstname, symlinks, ignore) else: copy2(srcname, dstname) # XXX What about devices, sockets etc.? except (IOError, os.error) as why: errors.append((srcname, dstname, str(why))) # catch the Error from the recursive copytree so that we can # continue with other files except Error as err: errors.extend(err.args[0]) try: copystat(src, dst) except WindowsError: # can't copy file access times on Windows pass except OSError as why: errors.extend((src, dst, str(why))) if errors: raise Error(errors)
2. 刪除文件夾
#! /usr/bash/python# encoding:utf-8import osimport os.pathimport statimport shutilclass DelDir: ''' 刪除指定根目錄下特定文件夾 ''' def __init__(self, root, dirname): self.root = root self.dirname = dirname def run(self): for r, dirs, files in os.walk(self.root): if self.dirname in dirs: srcDir = os.path.join(r, self.dirname) #更改權限(win7會出現權限問題) os.chmod(srcDir, stat.S_IREAD | stat.S_IWRITE) result = shutil.rmtree(srcDir, False, self.__handler) print "%s" %(srcDir) def __handler(self, function, path, excinfo): ''' 刪除出錯處理 ''' #更改權限(win7會出現權限問題) os.chmod(path, stat.S_IREAD | stat.S_IWRITE) function(path) print "[Handler] ==> Path:%s /n/tHandler the Error: %s" %(path, excinfo)if __name__ == '__main__': rootdir = r"E:/workspace/minioffice/mini-core/src/main/webapp" # 需要處理的文件夾 rootdir = unicode(rootdir, "utf8") dirname = ".svn" # 刪除的文件夾 c = DelDir(rootdir, dirname) c.run()
Python實現文件夾遞歸拷貝
目標:
1.多層文件夾嵌套,在要備份的文件夾中嵌套多個文件夾
2.增量備份,因為文件較多,且之前已有部分備份,所以只需對新增的文件進行備份,提升效率
Python安裝:
1.下載安裝包,http://www.python.org/getit/,可以選擇Python2或3,2的兼容性更好
2.添加Python安裝目錄如D:/Program/Python到環境變量Path中
編寫腳本:
新聞熱點
疑難解答