python将当前目录下的duichang.zip解压,并将解压后的路径传给src_folder
时间: 2023-06-18 15:08:53 浏览: 49
可以使用Python标准库中的zipfile模块来实现解压缩操作。具体代码如下:
```python
import zipfile
import os
# 获取当前目录
cur_dir = os.getcwd()
# 压缩文件路径
zip_file = os.path.join(cur_dir, 'duichang.zip')
# 解压后的文件夹路径
src_folder = os.path.join(cur_dir, 'duichang')
# 如果解压后的文件夹路径已经存在,则先删除
if os.path.exists(src_folder):
shutil.rmtree(src_folder)
# 解压文件
zip_ref = zipfile.ZipFile(zip_file, 'r')
zip_ref.extractall(src_folder)
zip_ref.close()
```
注意,上述代码中需要导入os和zipfile模块,同时需要注意解压后的文件夹路径是否已经存在,如果存在需要先删除。
相关问题
用python写一个服务并注释,开放一个接口http://192.168.1.226:5000/dezip,启动后,前端访问该接口时会输入堆场号,然后前端会上传duichang.zip压缩文件夹,程序接收到dch并将其作为参数,后将收到的duichang.zip文件解压,解压后,将解压文件中的子文件夹复制到当前项目下的"'dch'+duichang"文件夹中,后将解压文件夹和压缩文件夹删除。
以下是一个使用 Flask 框架编写的示例程序,用于接收并处理前端发送的文件以及堆场号:
```python
from flask import Flask, request
import os
import shutil
import zipfile
app = Flask(__name__)
@app.route('/dezip', methods=['POST'])
def dezip():
# 获取堆场号
duichang = request.form['duichang']
# 获取上传的文件
dch = request.files['dch']
# 保存上传的文件
dch.save('dch.zip')
# 解压文件
with zipfile.ZipFile('dch.zip', 'r') as zip_ref:
zip_ref.extractall('.')
# 复制子文件夹到目标文件夹
dch_folder = 'dch' + duichang
os.mkdir(dch_folder)
for folder_name in os.listdir('.'):
if os.path.isdir(folder_name):
shutil.copytree(folder_name, os.path.join(dch_folder, folder_name))
# 删除解压文件夹和压缩文件
shutil.rmtree('dch')
os.unlink('dch.zip')
return 'OK'
if __name__ == '__main__':
app.run(host='192.168.1.226', port=5000)
```
该程序监听 IP 地址为 `192.168.1.226`,端口为 `5000`,当前端访问 `/dezip` 接口时,程序会获取堆场号和上传的文件,并将上传的文件解压到当前目录下,将解压出来的子文件夹复制到目标文件夹中,最后删除解压文件夹和上传的压缩文件。
将同一目录下不同文件夹下的.zip文件解压到同名的文件夹中
假设你有以下目录结构:
```
.
├── folder1
│ ├── file1.zip
│ └── file2.zip
├── folder2
│ ├── file3.zip
│ └── file4.zip
└── unzip.py
```
可以使用 Python 的 `zipfile` 模块来实现解压缩。以下是一个示例脚本 `unzip.py`,可以将同一目录下不同文件夹下的 `.zip` 文件解压到同名的文件夹中:
```python
import os
import zipfile
# 遍历当前目录下的所有文件夹
for foldername in os.listdir('.'):
# 如果文件夹名以 "folder" 开头,说明是我们要处理的文件夹
if foldername.startswith('folder'):
print(f'Processing folder {foldername}...')
# 遍历文件夹中的所有文件
for filename in os.listdir(foldername):
# 如果文件名以 ".zip" 结尾,说明是一个压缩文件
if filename.endswith('.zip'):
# 将文件名中的 ".zip" 后缀去掉,得到目标文件夹名
target_foldername = os.path.splitext(filename)[0]
# 创建目标文件夹
os.makedirs(os.path.join(foldername, target_foldername), exist_ok=True)
# 打开压缩文件,解压到目标文件夹中
with zipfile.ZipFile(os.path.join(foldername, filename), 'r') as zip_ref:
zip_ref.extractall(os.path.join(foldername, target_foldername))
print(f'Unzipped {filename} to {target_foldername}.')
```
运行该脚本后,目录结构将变为:
```
.
├── folder1
│ ├── file1.zip
│ ├── file1
│ │ └── ...
│ ├── file2.zip
│ └── file2
│ └── ...
├── folder2
│ ├── file3.zip
│ ├── file3
│ │ └── ...
│ ├── file4.zip
│ └── file4
│ └── ...
└── unzip.py
```
其中,每个 `.zip` 文件被解压到同名的文件夹中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)