首页 > 解决方案 > 设置允许的压缩文件中的数据类型

问题描述

你好我是一名学生并且有一个问题,我想在 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 文件中数据类型的允许扩展名?谢谢你。

标签: pythoncsvflaskzipfile

解决方案


您可以使用的一个简单过滤器是str.endswith。例如:

list_data = [x for x in list_data if x.endswith(".csv") and "__MACOSX" not in x]

推荐阅读