установить разрешенный тип данных в заархивированном файле - PullRequest
1 голос
/ 06 мая 2020

привет, я студент и у меня есть вопрос, я хочу установить тип данных в 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))

как установить разрешенные расширения типа данных внутри zip файла только для csv? спасибо.

1 Ответ

1 голос
/ 06 мая 2020

Простой фильтр, который вы можете использовать, - это str.endswith . Например:

list_data = [x for x in list_data if x.endswith(".csv") and "__MACOSX" not in x]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...