在python3中,提取一批N个WORD文档的文本,从中筛选非汉字的数值和英文词汇。请使用类方法编写代码。要求能够处理DOC文档。要求能够处理DOCX文档。要求把文本中负数和正数都提取出来。要求把使用连字符 “-”的复合英语单词也提取出来。要求使用最新的工具库完成这个任务。
时间: 2024-03-25 18:41:35 浏览: 124
好的,我可以为您编写代码来完成这个任务。这里是一个Python类的示例,可以实现您的要求:
```python
import os
import re
import docx
import docx2txt
class DocumentAnalyzer:
def __init__(self, docs_folder_path):
self.docs_folder_path = docs_folder_path
def extract_text(self, filename):
if filename.endswith('.docx'):
return docx2txt.process(os.path.join(self.docs_folder_path, filename))
elif filename.endswith('.doc'):
doc = docx.Document(os.path.join(self.docs_folder_path, filename))
return '\n'.join([para.text for para in doc.paragraphs])
else:
return ''
def analyze_docs(self):
results = []
for filename in os.listdir(self.docs_folder_path):
if filename.endswith('.doc') or filename.endswith('.docx'):
text = self.extract_text(filename)
numbers = re.findall(r'[-+]?\d*\.\d+|\d+', text)
words = re.findall(r'\b[a-zA-Z-]+\b', text)
results.append({'filename': filename, 'numbers': numbers, 'words': words})
return results
```
使用方法如下:
```python
analyzer = DocumentAnalyzer('/path/to/docs/folder')
results = analyzer.analyze_docs()
print(results)
```
其中,`/path/to/docs/folder` 为存储WORD文档的文件夹路径,`analyze_docs()` 方法会遍历该文件夹下的所有WORD文档,提取出文本并筛选非汉字的数值和英文词汇,最后返回一个列表,包含每个文档的文件名、提取出的数值和英文词汇。
阅读全文