shutil 高阶文件操作 | Python 主题月

简介: shutil 高阶文件操作 | Python 主题月

关于shutil


它是一个Python内置的高级的文件、文件夹、压缩包处理模块。


文件操作相关


用法1


shutil.copyfileobj(fsrc, fdst[, length])
复制代码


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


import shutil
shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))
复制代码


用法2


shutil.copyfile(src, dst)
复制代码


拷贝文件


shutil.copyfile('f1.log', 'f2.log') #目标文件无需存在
复制代码


用法3


shutil.copymode(src, dst)
复制代码


仅拷贝权限。内容、组、用户均不变


shutil.copymode('f1.log', 'f2.log') #目标文件必须存在
复制代码


用法4


shutil.copystat(src, dst)
复制代码


仅拷贝状态的信息,包括:mode bits, atime, mtime, flags


shutil.copystat('f1.log', 'f2.log') #目标文件必须存在
复制代码


用法5


shutil.copy(src, dst)
复制代码


拷贝文件和权限


import shutil
shutil.copy('f1.log', 'f2.log')
复制代码


用法6


shutil.copy2(src, dst)
复制代码


拷贝文件和状态信息


import shutil
shutil.copy2('f1.log', 'f2.log')
复制代码


用法7


shutil.ignore_patterns(*patterns)
shutil.copytree(src, dst, symlinks=False, ignore=None)
复制代码


递归的去拷贝文件夹


import shutil
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除 
复制代码


用法8


shutil.rmtree(path[, ignore_errors[, onerror]])
复制代码


递归的去删除文件


import shutil
shutil.rmtree('folder1')
复制代码


用法8


shutil.move(src, dst)
复制代码


递归的去移动文件,它类似mv命令,其实就是重命名。


import shutil
shutil.move('folder1', 'folder3')
复制代码


压缩包相关


基础用法


shutil.make_archive(base_name, format,...)
复制代码


创建压缩包并返回文件路径,例如:zip、tar


base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径。
如:base_name='data_bak' => 意为保存至当前路径
如:base_name='/tmp/data_bak' => 意为保存至/tmp/
format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
root_dir: 要压缩的文件夹路径(默认当前目录)
owner: 用户,默认当前用户
group: 组,默认当前组
logger: 用于记录日志,通常是logging.Logger对象
复制代码


场景1


将 /data 下的文件打包放置当前程序目录


import shutil
ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data')
复制代码


场景2


将 /data下的文件打包放置 /tmp/目录


import shutil
ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')
复制代码


更多用法等着你去探索!

相关文章
|
2月前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
|
4月前
|
XML Shell API
python ConfigParser、shutil、subprocess、ElementTree模块简解
python ConfigParser、shutil、subprocess、ElementTree模块简解
|
2月前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
3月前
|
存储 Python
Python文件操作
Python文件操作
|
3月前
|
存储 安全 Python
30天拿下Python之文件操作
30天拿下Python之文件操作
34 1
|
3月前
|
Python
Python之shutil库详解
Python之shutil库详解
44 3
|
4月前
|
安全 项目管理 Python
使用Python shutil库进行文件和目录操作
使用Python shutil库进行文件和目录操作
使用Python shutil库进行文件和目录操作
|
3月前
|
监控 安全 Java
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【9月更文挑战第13天】在Python系统编程中,文件操作与I/O管理至关重要。本文通过五个实战案例分享最佳实践:高效遍历文件系统、优雅处理文件读写、利用缓冲机制优化性能、并行处理文件加速任务以及异常处理确保程序稳健。使用pathlib、上下文管理器及concurrent.futures等工具,助你轻松掌握Python文件系统与I/O操作,提升编程效率和项目质量。 示例代码展示了如何使用pathlib遍历目录、with语句安全读写文件、控制缓冲区大小、并行处理多个文件以及捕获异常保证程序稳定运行。通过这些技巧,你将能够在实际项目中更加高效地管理和操作文件。
49 6
|
2月前
|
Java 程序员 Python
【Python】文件操作
【Python】文件操作
24 0
|
3月前
|
Unix 数据安全/隐私保护 Python
30天拿下Python之shutil模块
30天拿下Python之shutil模块
27 0