Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在windows 10上读取python中的.doc文件_Python 3.x_Text Extraction_.doc - Fatal编程技术网

Python 3.x 在windows 10上读取python中的.doc文件

Python 3.x 在windows 10上读取python中的.doc文件,python-3.x,text-extraction,.doc,Python 3.x,Text Extraction,.doc,注意:这被标记为的潜在副本,但我的问题是使用textract不起作用。我正在寻找(a)一种让textract在windows 10上工作的方法,或者(b)另一种解决方案 我正在构建一个需要读取各种类型文件的系统。我已经设置了pdfminer来读取.pdfs,并根据所述的过程安装了textract,现在我还可以读取.docx文件。然而,textract依赖antiword来读取.doc文件,我无法让它工作,即使按照说明操作,我也无法找到并安装antiword的工作版本。我的机器上没有安装micro

注意:这被标记为的潜在副本,但我的问题是使用textract不起作用。我正在寻找(a)一种让textract在windows 10上工作的方法,或者(b)另一种解决方案

我正在构建一个需要读取各种类型文件的系统。我已经设置了pdfminer来读取.pdfs,并根据所述的过程安装了textract,现在我还可以读取.docx文件。然而,textract依赖antiword来读取.doc文件,我无法让它工作,即使按照说明操作,我也无法找到并安装antiword的工作版本。我的机器上没有安装microsoft word,我正在使用python 3.6.5运行windows 10。有没有其他方法读取.doc文件

下面是运行textract.process('d.doc')时出现的错误(忽略第一个错误,文件肯定存在):

回溯(最近一次呼叫最后一次):
文件“C:\ProgramData\Anaconda3\lib\site packages\textract\parsers\utils.py”,第84行,正在运行
stdout=subprocess.PIPE,stderr=subprocess.PIPE,
文件“C:\ProgramData\Anaconda3\lib\subprocess.py”,第709行,在\uuu init中__
恢复信号,启动新会话)
文件“C:\ProgramData\Anaconda3\lib\subprocess.py”,第997行,在_execute_child中
startupinfo)
FileNotFoundError:[WinError 2]系统找不到指定的文件
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\ProgramData\Anaconda3\lib\site packages\textract\parsers\\uuuu init\uuuu.py”,第77行,正在处理中
返回parser.process(文件名,编码,**kwargs)
文件“C:\ProgramData\Anaconda3\lib\site packages\textract\parsers\utils.py”,第46行,正在处理中
byte_string=self.extract(文件名,**kwargs)
文件“C:\ProgramData\Anaconda3\lib\site packages\textract\parsers\doc\u parser.py”,第9行,摘录
stdout,stderr=self.run(['antiword',filename])
文件“C:\ProgramData\Anaconda3\lib\site packages\textract\parsers\utils.py”,第91行,正在运行
“.加入(args),127,”,
textract.exceptions.ShellError:命令antiword d.doc失败,退出代码为127

我能够使用olefile获得部分文本,但olefile最终只处理字节,而不处理Word.doc文件的编码。解决方案是使用LibreOffice,请参阅“Windows安装问题”系列中我的另一个问题:

在遵循“安装”antiword的步骤之后,我遇到了与您相同的问题

在设置环境路径变量后重新启动windows完全解决了这个错误消息。(这是我在使用textract处理.doc文件时遇到的最后一个错误)


安装说明摘自

“安装反Word (我接着说)

  • 提取到c:\antiword(是,它必须位于根目录中)
  • 将位置添加到路径,就像我们在tesseract ocr中所做的那样[基本上是将c:\antiword添加到系统路径(环境变量)]”
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\utils.py", line 84, in run
    stdout=subprocess.PIPE, stderr=subprocess.PIPE,
  File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\__init__.py", line 77, in process
    return parser.process(filename, encoding, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\utils.py", line 46, in process
    byte_string = self.extract(filename, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\doc_parser.py", line 9, in extract
    stdout, stderr = self.run(['antiword', filename])
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\utils.py", line 91, in run
    ' '.join(args), 127, '', '',
textract.exceptions.ShellError: The command antiword d.doc failed with exit code 127