Как прочитать сохранить содержимое файла DOCX в колбе с flask-sqlalchemy? - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь сохранить содержимое файла docx в моем приложении фляги, используя библиотеку python-docx. Кажется, что работает за пределами колбы, но не уверен, где я делаю ошибку. Требуется помощь.

Мне удалось сохранить простые файлы .txt с помощью функции read ().

Blockquote

@app.route('/add_document', methods = ['GET','POST'])
@login_required
def add_document():
    if request.method == 'POST':
        title=request.form['title']
        file = request.files['file']
        allowed_extensions = ['txt','doc','docx']
        filename = file.filename
        file_extension = filename.split('.', 1)[1].lower()
        content=''
        if file:
            if file_extension in allowed_extensions:
                if file_extension == 'txt':
                    content = str(file.read())
                if file_extension == 'docx':
                    content = ''.join([para.text for para in Document(filename).paragraphs])
        else:
            content = request.form['text']
        summary = auto_summarize(content,20,topicing,2)
        topic = ', '.join([i for i in topicing(content,3)])
        document = Document(title=title, content=content, summary=summary,
                            topic=topic, owner=current_user)
        db.session.add(document)
        db.session.commit()
        # reader.close()
        flash('Document uploaded! Please visit MyDocs to see it!','success')
        return redirect(request.url)
    return render_template('add_document.html')

Blockquote

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

для циклического чтения параграфа из вашего файла .docx

from docx import Document

document = Document("file_path/file_name.docx")
for p in document.paragraphs:
    print(p.text)
0 голосов
/ 02 июня 2019

цикл for для чтения файла docx просто выбирает первую строку файла.ниже приведен демонстрационный код, который может поместиться справа.

import docx
doc = docx.Document("abc.docx")
fullText = []
a=''
for para in doc.paragraphs:
  fullText.append(para.text)
a='\n'.join(fullText)
print(a)
...