用python写一个服务并注释,开放一个接口http://192.168.1.226:5000/dezip,启动后,前端访问该接口时会输入堆场号,然后前端会上传压缩文件夹,程序接收到dch并将其作为参数,后将收到的压缩文件解压,解压后,将解压文件中的子文件夹复制到当前目录下的"'dch'+duichang"文件夹中,后将解压文件夹和压缩文件夹删除。
时间: 2023-06-23 11:08:22 浏览: 160
以下是用 Python Flask 框架实现的代码,可以满足您的需求。注释已经在代码中加入。
```python
from flask import Flask, request
import os
import zipfile
app = Flask(__name__)
@app.route('/dezip', methods=['POST'])
def dezip():
# 获取堆场号
dch = request.form['dch']
# 获取上传的文件
file = request.files['file']
# 保存文件到本地
file.save(file.filename)
# 解压文件
with zipfile.ZipFile(file.filename, 'r') as zip_ref:
zip_ref.extractall('./')
# 复制子文件夹到指定目录
dst_folder = f'./dch{dch}'
if not os.path.exists(dst_folder):
os.makedirs(dst_folder)
for root, dirs, files in os.walk('./'):
for dir in dirs:
src_folder = os.path.join(root, dir)
if src_folder != dst_folder:
dst_path = os.path.join(dst_folder, dir)
shutil.copytree(src_folder, dst_path)
# 删除解压文件夹和压缩文件
shutil.rmtree('./')
os.remove(file.filename)
return 'Success!'
if __name__ == '__main__':
app.run(host='192.168.1.226', port=5000)
```
需要注意的是,这里没有对上传的文件进行任何校验和安全性检查,建议在实际应用中加入相应的处理。
阅读全文