pathlib如何获取解压缩后的文件目录
时间: 2024-09-12 09:09:44 浏览: 29
`pathlib` 是 Python 的标准库之一,它提供了处理文件路径的高级接口。如果你有一个压缩文件(比如 `.zip` 或者 `.tar.gz`),你可以使用 `pathlib` 结合其他模块如 `zipfile` 或 `tarfile` 来解压并获取解压后的文件目录。
这里以 `zipfile` 和 `tarfile` 为例:
1. 对于 .zip 文件:
```python
from zipfile import ZipFile
import pathlib
# 假设你有一个名为 "my_file.zip" 的文件
zip_path = pathlib.Path("my_file.zip")
with ZipFile(zip_path, 'r') as zip_obj:
# 获取解压后的内容为临时目录
extracted_dir = zip_obj.extractall(path=pathlib.Path.cwd()) # 解压到当前工作目录
# 解压后的目录路径就是临时目录
unzipped_dir = extracted_dir.resolve()
```
2. 对于 .tar.gz (gzip) 文件:
```python
import tarfile
import gzip
import io
# 假设 "my_file.tar.gz" 是一个 .tar.gz 文件
gz_path = pathlib.Path("my_file.tar.gz")
tar_path = gz_path.with_suffix(".tar") # 先去掉.gz扩展名
# 使用gzip先解压缩到内存中的 TarFile 对象
with gzip.open(gz_path, 'rb') as f_in:
with io.BytesIO(f_in.read()) as f_out:
with tarfile.open(fileobj=f_out, mode='r:gz') as tar:
# 解压到指定目录
tar.extractall(path=pathlib.Path.cwd())
# 获取解压后的目录同上
unzipped_dir = tar.getnames()[-1] # 如果只有一个文件或目录,这将返回它
unzipped_dir = pathlib.Path(unzipped_dir)
```
记得替换上述代码中的 `"my_file.zip"` 或 `"my_file.tar.gz"` 为你实际的文件路径。`unzipped_dir` 将是你解压后的目录。