神子天使,河南专升本招生计划,龙之谷王小龙
shutil:高级的 文件、文件夹、压缩包 处理模块
shutil.copyfileobj(fsrc, fdst[, length])(copyfileobj方法只会拷贝文件内容)
将文件内容拷贝到另一个文件中
import shutil shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))
shutil.copyfile(src, dst) (copyfile只拷贝文件内容)
拷贝文件
shutil.copyfile('f1.log', 'f2.log')
shutil.copy(src, dst) 拷贝文件和权限
shutil.copy('f1.log', 'f2.log')
shutil.copy2(src, dst)
拷贝文件和状态信息
shutil.copy2('f1.log', 'f2.log'
shutil.copymode(src, dst) (前提是dst文件存在,不然报错)
仅拷贝权限。内容、组、用户均不变
shutil.copymode('f1.log', 'f2.log')
shutil.copystat(src, dst)
仅拷贝状态的信息,即文件属性,包括:mode bits, atime, mtime, flags
shutil.copystat('f1.log', 'f2.log')
shutil.ignore_patterns(*patterns) (忽略哪个文件,有选择性的拷贝)
shutil.copytree(src, dst, symlinks=false, ignore=none)
递归的去拷贝文件夹
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
shutil.copytree('f1', 'f2', symlinks=true, ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
shutil.rmtree(path[, ignore_errors[, onerror]])
递归的去删除文件
shutil.rmtree('folder1')
shutil.move(src, dst)
递归的去移动文件,它类似mv命令,其实就是重命名。
shutil.move('folder1', 'folder3')
shutil.make_archive(base_name, format,...)
创建压缩包并返回文件路径,例如:zip、tar
创建压缩包并返回文件路径,例如:zip、tar
#将 /users/wupeiqi/downloads/test 下的文件打包放置当前程序目录 import shutil ret = shutil.make_archive("wwwwwwwwww", 'gztar', root_dir='/users/wupeiqi/downloads/test') #将 /users/wupeiqi/downloads/test 下的文件打包放置 /users/wupeiqi/目录 import shutil ret = shutil.make_archive("/users/wupeiqi/wwwwwwwwww", 'gztar', root_dir='/users/wupeiqi/downloads/test')
shutil 对压缩包的处理是调用 zipfile 和 tarfile 两个模块来进行的,详细:
import zipfile # 压缩 z = zipfile.zipfile('laxi.zip', 'w') z.write('a.log') z.write('data.data') z.close() # 解压 z = zipfile.zipfile('laxi.zip', 'r') z.extractall() z.close()
import tarfile # 压缩 tar = tarfile.open('your.tar','w') tar.add('/users/wupeiqi/pycharmprojects/bbs2.log', arcname='bbs2.log') tar.add('/users/wupeiqi/pycharmprojects/cmdb.log', arcname='cmdb.log') tar.close() # 解压 tar = tarfile.open('your.tar','r') tar.extractall() # 可设置解压地址 tar.close()
备注:zipfile压缩不会保留文件的状态信息,而tarfile会保留文件的状态信息
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论