用python写一个服务并注释,开放一个接口http://192.168.1.226:5000/dezip,启动后,前端访问该接口时输入dch,然后前端上传压缩文件夹,程序接收dch并将其作为参数,后将收到的文件解压,解压后,将解压文件中的子文件夹复制到当前项目下的"'dch'+duichang"文件夹中,后将解压文件夹和压缩文件夹删除。
时间: 2023-06-23 13:07:56 浏览: 75
可以上传压缩文件,然后进行解压,
4星 · 用户满意度95%
以下是使用Python Flask框架编写的服务代码,实现了你提供的功能。代码中已经添加了注释,方便理解。
```python
from flask import Flask, request
import os
import shutil
import zipfile
app = Flask(__name__)
@app.route('/dezip', methods=['POST'])
def dezip():
# 接收前端传递的参数dch
dch = request.form['dch']
# 获取上传的文件
file = request.files['file']
# 保存上传的文件
file.save(file.filename)
# 解压上传的文件
with zipfile.ZipFile(file.filename, 'r') as zip_ref:
zip_ref.extractall()
# 遍历解压后的文件夹,将其中的子文件夹复制到指定目录
for foldername in os.listdir('.'):
if os.path.isdir(foldername):
shutil.copytree(foldername, os.path.join(dch + 'duichang', foldername))
# 删除解压文件夹和上传的压缩文件
shutil.rmtree(file.filename[:-4])
os.remove(file.filename)
return 'success'
if __name__ == '__main__':
app.run(host='192.168.1.226', port=5000)
```
说明:
1. 当访问http://192.168.1.226:5000/dezip时,会调用`dezip()`函数处理POST请求。
2. 使用Flask框架中的`request`模块获取前端传递的参数dch和上传的文件。
3. 使用Python标准库中的`zipfile`模块解压上传的文件。
4. 使用Python标准库中的`os`和`shutil`模块遍历解压后的文件夹,并将其中的子文件夹复制到指定目录。
5. 使用Python标准库中的`os`和`shutil`模块删除解压文件夹和上传的压缩文件。
6. 启动Flask服务时,指定IP地址为192.168.1.226,监听端口为5000。
阅读全文