python递归解压缩文件
时间: 2023-05-12 14:02:49 浏览: 221
可以使用Python的zipfile模块来解压缩文件,以下是递归解压缩文件的代码:
```python
import os
import zipfile
def unzip_file(path, dest):
with zipfile.ZipFile(path, 'r') as zip_ref:
zip_ref.extractall(dest)
for root, dirs, files in os.walk(dest):
for file in files:
if file.endswith('.zip'):
file_path = os.path.join(root, file)
unzip_file(file_path, dest)
```
其中,path是要解压缩的文件路径,dest是解压缩后的目标文件夹路径。这段代码会递归地解压缩所有嵌套的zip文件。
相关问题
使用python递归解压zip文件
可以使用Python内置的zipfile模块来解压zip文件,以下是一个递归解压zip文件的示例代码:
```python
import os
import zipfile
def extract_all_zip_files(path):
"""
递归解压指定目录下的所有zip文件
"""
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.endswith('.zip'):
zip_file_path = os.path.join(dirpath, filename)
with zipfile.ZipFile(zip_file_path, 'r') as zip_file:
zip_file.extractall(dirpath)
os.remove(zip_file_path)
for dirname in dirnames:
extract_all_zip_files(os.path.join(dirpath, dirname))
```
将需要解压的zip文件所在的顶级目录路径传入该函数即可递归解压该目录下的所有zip文件。函数会自动删除解压后的zip文件。
python 递归获取所有文件
可以使用os模块中的walk函数来递归获取所有文件,示例代码如下:
import os
def get_all_files(path):
all_files = []
for root, dirs, files in os.walk(path):
for file in files:
file_path = os.path.join(root, file)
all_files.append(file_path)
return all_files
# 调用示例
all_files = get_all_files('/path/to/dir')
print(all_files)