python - 设置允许的压缩文件中的数据类型
问题描述
你好我是一名学生并且有一个问题,我想在 zip 文件中设置数据类型以获得更多限制。
我已经做了这样的事情:
upload_folder = 'static/upload_file'
allowed_extensions = set(['zip'])
app = Flask(__name__)
app.config['upload_folder'] = upload_folder
def allowed_file(filename):
return '.' in filename and filename.rsplit('.',1)[1].lower() in allowed_extensions
@app.route('/uploader', methods=['POST','GET'])
def uploader():
if 'POST' == request.method:
if 'file' not in request.files:
flash('No file part')
return redirect(request.url)
berkas = request.files['file']
if berkas.filename == '':
flash('no selected file')
return redirect(request.url)
if berkas and allowed_file(berkas.filename):
filename = secure_filename(berkas.filename)
berkas.save(os.path.join(app.config['upload_folder'], filename))
directory_berkas = 'static/upload_file/'berkas.filename
with ZipFile(direktori_berkas, 'r') as file:
files = {name: file.read(name) for name in file.namelist()}
list_data = file.namelist()
file.close()
list_data = [x for x in list_data if "__MACOSX" not in x]
flash("upload success")
return redirect(url_for('uploader',
filename=filename,
list_data=list_data))
如何为 csv 设置 zip 文件中数据类型的允许扩展名?谢谢你。
解决方案
您可以使用的一个简单过滤器是str.endswith。例如:
list_data = [x for x in list_data if x.endswith(".csv") and "__MACOSX" not in x]
推荐阅读
- sql - SQL 获取按列分组的几行的计数
- angular - 从 Jasmine/Karma 迁移到 Jest 是否可行?
- python-3.x - Python日志错误是指函数中的错误行
- sql - 为什么 postgres 表在使用 json 数据执行 sql insert 查询后每列都显示 Null?
- vue.js - [Vue 警告]:渲染错误:“TypeError:无法读取属性 '0' of null”
- angular - 以编程方式更改结束日期时间
- javascript - 单击更改 div 背景图像
- c# - 如何在 c# windows 窗体中远程连接 2 应用程序?
- ruby - 涉及法语字符的 Ruby 十六进制到字符串转换
- java - PDFBox 2.0:如何在此处检测粗体文本