shutil模块

shutil

高级的文件、文件夹、压缩包处理模块

copyfileobj(fsrc, fdst[, length])

将文件内容拷贝到另一个文件

>> shutil.copyfileobj(open('test2.log', 'r'), open('test3.log', 'w'))

copyfile(src, dst)

拷贝文件

>> shutil.copyfile('test3.log', 'test4.log')

copymode(src, dst)

拷贝权限,读写执行。 内容、组、用户不变

>> shutil.copymode('test4.log', 'test3.log')

copystat(src, dst)

贝状态信息,atimemtimeflagsmode bits

>> shutil.copystat('test4.log', 'test3.log')

copy(src, dst)

贝文件和权限

>> shutil.copy('test4.log', 'test5.log')

copy(src, dst)

贝文件和状态信息

>> shutil.copy2('test5.log', 'test6.log')

shutil.ignore_patterns(*patterns)

shutil.copytree(src, dst, symlinks=False, ignore=None)

递归拷贝文件夹

shutil.copytree('test', 'test2', symlinks=False, ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))

move(src, dst)

shutil.rmtree(path)

递归的去删除文件

shutil.make_archive(base_name, format...)

创建压缩包并返回文件路径

  • base_name 压缩的文件名,也可以是压缩包路径。只是文件名时,则保存至当前目录,否则保存至指定目录。

  • Format 压缩包种类, ziptarbztargztar

  • root_dir 要压缩的文件夹路径

  • owner 用户,默认当前用户

  • group 组,默认当前组

  • logger 记录日志,通常是logging.Logger对象

test目录压缩为test.tar.gz,保存至当前目录。

>> shutil.make_archive('test', 'gztar', root_dir='/tmp/test')

>> '/tmp/test.tar.gz'

test目录压缩为test.tar.gz,保存至当前/root目录。

>> shutil.make_archive('/root/test', 'gztar', root_dir='/tmp/test')

>> '/tmp/test.tar.gz'

zipfile

z = zipfile.ZipFile('test.zip', 'w')

z.write('re1.py')

z.close()

z = zipfile.ZipFile('test.zip', 'r')

# z.extractall() # 提取所有文件

z.extract('re1.py') # 提取单个文件

查看压缩包里内容

nlist = z.namelist() # 压缩包成员列表

print(nlist)

tarfile

压缩

tar = tarfile.open('test2.tar', 'w')

tar.add('re1.py', arcname='re.py')

tar.add('oss.py', arcname='myoss.py')

tar.close()

解压

tar = tarfile.open('test2.tar', 'r')

# nlist = tar.getmembers()

obj = tar.getmember('re.py')

tar.extract(obj)

print(obj)

原文地址:https://www.cnblogs.com/xiaoming279/p/6372946.html