文件操作
- 文件复制
- copyfileobj
- copyfile
- copy ```python from shutil import copyfileobj, copyfile, copy
将文件类对象 fsrc 的内容拷贝到文件类对象 fdst
fs = open(‘test-log.log’, ‘r’) ft = open(‘./mkdir/test.log’, ‘w’) copyfileobj(fsrc=fs, fdst=ft)
将名为 src 的文件的内容(不包括元数据)拷贝到名为 dst 的文件并返回 dst
copyfile(src=’test-log.log’, dst=’./mkdir/test1.log’)
将文件 src 拷贝到文件或目录 dst
copy(src=’test-log.log’, dst=’./mkdir/test2.log’)
2. 删除
1. **rmtree**
```python
from shutil import rmtree
# 删除目录
rmtree('./mkdir')
- 其他
- disk_usage
- which ```python
from shutil import disk_usage, which
获取当前目录所在硬盘使用情况
print(disk_usage(‘./mkdir’))
“”” usage(total=494384795648, used=177334337536, free=300292165632) “””
获取给定的cmd命令的可执行文件的路径
print(which(‘python3’))
“”” /Users/zaygee/work_script/env/bin/python3 “””
<a name="Qlyya"></a>
#### 文件解压缩
1. 压缩文件
1. **make_archive**
- base_name:压缩文件的文件名,不允许有扩展名,因为会根据压缩格式生成相应的扩展名
- format:压缩格式
- root_dir:将制定文件夹进行压缩
```python
from shutil import make_archive
# 生成压缩文件
base_name = PurePath.joinpath(Path(__file__).parent, 'mkdir')
for_mat = 'zip'
root_dir = PurePath.joinpath(Path(__file__).parent, 'mkdir')
make_archive(base_name=base_name, format=for_mat, root_dir=root_dir)
- 解压文件
- unpack_archive
- filename:文件路径
- extract_dir:解压至的文件夹路径。文件夹可以不存在,会自动生成
- format:解压格式,默认为None,会根据扩展名自动选择解压格式 ```python from shutil import unpack_archive
解压文件
zippath = PurePath.joinpath(Path(_file).parent, ‘mkdir.zip’) unpack_archive(filename=zip_path, extract_dir=’./mkdir_zip’) ```