Angularjs AttributeError:Word.Application.Documents与Flask应用程序中的win32.com
我正在开发一个web应用程序,它接受word文件并执行标记化。 我注意到文档从angularJS正确地传递到Flask,但有一个错误我无法解释:Angularjs AttributeError:Word.Application.Documents与Flask应用程序中的win32.com,angularjs,python-3.x,flask,win32com,Angularjs,Python 3.x,Flask,Win32com,我正在开发一个web应用程序,它接受word文件并执行标记化。 我注意到文档从angularJS正确地传递到Flask,但有一个错误我无法解释: Traceback (most recent call last): File "C:\Users\AOUP\MiniAnaconda\lib\site-packages\flask\app.py", line 2446, in wsgi_app response = self.full_dispatch_request() File
Traceback (most recent call last):
File "C:\Users\AOUP\MiniAnaconda\lib\site-packages\flask\app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\AOUP\MiniAnaconda\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\AOUP\MiniAnaconda\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\AOUP\MiniAnaconda\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\AOUP\MiniAnaconda\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\AOUP\MiniAnaconda\lib\site-packages\flask\app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "app.py", line 43, in tokenizer
myDoc = word.Documents.Open(pathToProc, False, False, True) #stackoverflow
File "C:\Users\AOUP\MiniAnaconda\lib\site-packages\win32com\client\dynamic.py", line 527, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: Word.Application.Documents
文档通过angularJS
传递,代码如下:
var f = document.getElementsByTagName("form")[0].children[1].files[0].name;
if (f != ""){
$http({
url: '/tokenizeDoc',
method: "GET",
params: {doc : f}
});
}
随后,Flask使用以下脚本读取它,错误与错误注释一致:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import string
import win32com.client
import nltk
import os
from collections import Counter
from pywintypes import com_error
from flask import request, Flask, render_template, jsonify
word = win32com.client.Dispatch("Word.Application")
word.Visible = False
app = Flask(__name__)
@app.route('/')
def landingPage():
return render_template('homepage.html')
@app.route('/tokenizeDoc', methods = ['GET'])
def tokenizer():
if request.method == 'GET':
pathToProc = request.values.get("doc")
sent_tokenizer = nltk.data.load('tokenizers/punkt/italian.pickle')
it_stop_words = nltk.corpus.stopwords.words('italian') + ['\n', '\t', '']
trashes = it_stop_words + list(string.punctuation)
tokensTOT = []
try:
myDoc = word.Documents.Open(pathToProc, False, False, True) #ERROR!!!
sentences = sent_tokenizer.tokenize(word.ActiveDocument.Range().Text)
myDoc.Close()
del myDoc
for sentence in sentences:
tokensTOT = tokensTOT + [t.lower() for t in nltk.word_tokenize(sentence)
if t.lower() not in trashes]
except com_error:
print('IMPOSSIBILE DECIFRARE IL FILE')
return ''
我希望win32com库与web框架不兼容,有人可以给我一个答案。
非常感谢。使用
os.path.abspath(pathToProc)
而不是pathToProc myDoc=word.Documents.Open(pathToProc,False,False,True)#错误
使用os.path.abspath(pathToProc)
而不是pathToProc myDoc=word.Documents.Open(pathToProc,False,False,True)#错误代码>没有亮起的行。你能不能也包括例外信息我输入了完整的回溯并放上注释,而不是高亮显示?你能不能也包括定义在哪里的单词script@jan-如果你知道的话,塞恩斯会让我知道的……没有电话线。你能不能也包括例外信息我输入了完整的回溯并放上注释,而不是高亮显示?你能不能也包括定义在哪里的单词script@jan-如果你知道的话,让我知道。。。