标题说明了问题所在,有些doc和docs文件需要检索其作者信息,以便我可以重组我的文件。os.stat
仅返回大小和日期时间,与实文件有关的信息。open(filename, 'rb').read(200)
返回许多我无法解析的字符。
有一个称为xlrd
的模块,用于读取xlsx
文件。但是,这仍然不允许我阅读doc
或docx
文件。我知道在non-msoffice
程序上不容易读取新的Office文件,因此,如果不可能的话,从旧的Office文件中收集信息就足够了。
最佳答案
由于docx
文件只是压缩的XML,因此您可以解压缩docx文件,并大概将作者信息从XML文件中拉出。不太清楚它的存储位置,只是四处看看,使我怀疑它已作为dc:creator
存储在docProps/core.xml
中。
您可以通过以下方式打开docx文件并检索创建者:
import zipfile, lxml.etree
# open zipfile
zf = zipfile.ZipFile('my_doc.docx')
# use lxml to parse the xml file we are interested in
doc = lxml.etree.fromstring(zf.read('docProps/core.xml'))
# retrieve creator
ns={'dc': 'http://purl.org/dc/elements/1.1/'}
creator = doc.xpath('//dc:creator', namespaces=ns)[0].text