有没有合理的方法从不依赖于COM自动化的Word文件中提取纯文本?(这是部署在非Windows平台上的Web应用程序的一项功能 - 在这种情况下是不可协商的.)
Antiword似乎可能是一个合理的选择,但似乎它可能会被抛弃.
Python解决方案是理想的,但似乎不可用.
是否可以在不使用COM对象的情况下读取和编写Python中的Word(2003和2007)文件?
我知道我可以:
f = open('c:\file.doc', "w")
f.write(text)
f.close()
Run Code Online (Sandbox Code Playgroud)
但Word会将其读作HTML文件而不是本机.doc文件.
就像csv.reader()是有可以读取任何其他功能.rtf,.txt,.doc在Python文件?
我收到带有指定格式的word文档,这些格式对应于其中的数据.例如,所有标题都具有完全相同的格式(Times New Roman-Font 14-Bold).
将此类MS Word文档(.doc或.docx)处理成xml文档的最佳方法是什么?语言不是问题(如果必须,我将使用Lisp/Boost.Spirit!).
我正在寻找一种从Word文件中提取/抓取数据到数据库的方法.我们的公司程序与MS Word文件中记录的客户会议记录,主要是由于历史和惯性.
我希望能够从这些会议纪要行动项目拉进一个数据库,以便我们可以从一个Web界面访问它们,把它们变成任务,因为他们完成了更新.
这是最好的方法:
最后一个是我的吸引力,因为网络界面正在使用Django建成的,但我从来没有使用win32com或蟒蛇试图脚本字.
编辑:我已经开始提取与VBA的文本,因为它使得它更容易一些处理Word对象模型.我遇到了一个问题 - 所有文本都在表格中,当我将字符串拉出我想要的CELLS时,我会在每个字符串的末尾得到一个奇怪的小方框字符.我的代码看起来像:
sFile = "D:\temp\output.txt"
fnum = FreeFile
Open sFile For Output As #fnum
num_rows = Application.ActiveDocument.Tables(2).Rows.Count
For n = 1 To num_rows
Descr = Application.ActiveDocument.Tables(2).Cell(n, 2).Range.Text
Assign = Application.ActiveDocument.Tables(2).Cell(n, 3).Range.Text
Target = Application.ActiveDocument.Tables(2).Cell(n, 4).Range.Text
If Target = "" Then
ExportText = ""
Else
ExportText = Descr & Chr(44) & Assign & Chr(44) & _
Target & Chr(13) & Chr(10)
Print #fnum, ExportText
End If
Next n
Close #fnum
Run Code Online (Sandbox Code Playgroud)
小控制字符框有什么用?是什么类型的字符代码来自Word?
希望开发将处理文档的服务器端应用程序.源文档主要是MS-Word 2003,2007,即Docx的MS版本.希望服务器应用程序能够在Linux或Windows上运行.想知道什么是在linux下读写MS-Word文件的最佳工具或库.兼容性是最重要的考虑因素.必须保留源文档格式,包括表格.
我在这里看过一种类似的帖子,但它是特定于python的.我不关心使用什么语言或库,只要它们可用于Windows和Linux.
不得要求MS-Word读取Word文件.
我知道Open Office,但我正在寻找一种与MS-Word文件具有高度兼容性的解决方案.刚刚遇到这个看起来很有希望的解决方案.aspose.com
任何人都有使用Aspose.Words for Java或类似第三方软件包的经验吗?它看起来很有前景,但是对于OEM订阅而言价格超过2万美元.也就是说,如果它像宣传的那样传递它可能仍然是最好的解决方案.
谢谢有一些建议,但到目前为止没有什么适合账单(或预算).
可能重复:
如何捕获子进程的stdout输出?
我在catPython中使用bash 运行类似程序:
import os
os.system('cat foo.txt')
Run Code Online (Sandbox Code Playgroud)
如何在Python脚本中获取shell命令的输出,如:
s = somefunction('cat foo.txt')
Run Code Online (Sandbox Code Playgroud)
?
UPD:这是一个相关的主题.
我想创建一个验证工具;
任何人都可以帮我读取Python中的.doc/.docx文档,以便搜索和比较文件内容.
如果在浏览器中点击以下 url,将下载 docx 文件我想用 python 自动下载。
我已经尝试过以下
from docx import Document
import requests
import json
from bs4 import BeautifulSoup
dwnurl = 'https://hudoc.echr.coe.int/app/conversion/docx/?library=ECHR&id=001-176931&filename=CASE%20OF%20NDIDI%20v.%20THE%20UNITED%20KINGDOM.docx&logEvent=False'
doc = requests.get(dwnurl)
print(doc.content) #printing the document like b'PK\x03\x04\x14\x00\x06\x00\x08\x00\x00\x00!\x00!\xfb\x16\x01\x16\x02\x00\x00\xec\x0c\x00\x00\x13\x00\xc4\x01[Content_Types].xml \xa2\xc0\
print(doc.raw) #printing the document like <urllib3.response.HTTPResponse object at 0x063D8BD0>
document = Document(doc.content)
document.save('test.docx')
#on document.save i have facing these issues
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
File "scraping_hudoc.py", line 40, in <module>
document = Document(doc.content)
File "C:\Users\204387\AppData\Local\Programs\Python\Python36-32\lib\site-packages\docx\api.py", line 25, in Document
document_part = Package.open(docx).main_document_part
File "C:\Users\204387\AppData\Local\Programs\Python\Python36-32\lib\site-packages\docx\opc\package.py", line …
我有什么作为输入: docx 以 byte64 格式记录原始字节。
我想要实现的是:从此文档中提取文本以进行进一步处理。
我试图遵循这个答案:从 python 中的 MS Word 文件中提取文本
我的代码片段:
base64_bytes = input.encode('utf-8')
decoded_data = base64.decodebytes(base64_bytes)
document = Document(decoded_data)
docText = '\n\n'.join([paragraph.text.encode('utf-8') for paragraph in document.paragraphs])
Run Code Online (Sandbox Code Playgroud)
该document = Document(decoded_data)行给了我以下错误:AttributeError: 'bytes' object has no attribute 'seek'
该decoded_data是按以下格式:b'PK\\x03\\x04\\x14\\x00\\x08\\x08\\x08\\x00\\x87@CP\\x00...
我应该如何格式化原始数据以从 docx 中提取文本?
python ×9
ms-word ×6
docx ×2
bash ×1
doc ×1
linux ×1
parsing ×1
python-3.x ×1
pywin32 ×1
read-write ×1
vba ×1
web-scraping ×1
word-vba ×1