我将从一系列PDF文件中提取文本来进行主题建模。从PdF文件中提取文本后,我将把每个PDF文件的文本保存到一个.txt文件或.doc文件中。为此,我遇到了一个错误,即我应该添加.encode('utf-8')来将提取的文本保存到.txt文件中。所以,我添加了txt = str(txt.encode('utf-8'))。问题是读取.txt文件,当我读取.txt文件时,由于UTF-8,它们有特殊字符,我不知道如何才能没有这些字符的正文。我申请了解码,但它不起作用。
我应用了另一种方法来避免保存为.txt格式,我打算将提取的文本保存在数据框中,但我发现最初的几个页面都保存在数据框中!
如果你能分享你的解决方案,从.txt文件中读取和删除与编码('utf-8')相关的字符,以及如何将提取的文本保存在数据框中,我将不胜感激。
import pdfplumber
import pandas as pd
import codecs
txt = ''
with pdfplumber.open(r'C:\Users\thmag\3rdPaperLDA\A1.pdf') as pdf:
pages = pdf.pages
for i, pg in enumerate (pages):
txt += pages [i].extract_text()
print (txt)
data = {'text': [txt]}
df = pd.DataFrame(data)
####write in .txt file
text_file = open("Test.txt", "wt")
txt = str(txt.encode('utf-8'))
n = text_file.write(txt)
text_file.close()
####read from .txt file
with codecs.open('Test.txt', 'r', 'utf-8') as f:
for line in f:
print (line)发布于 2021-06-30 19:18:17
您写入的文件不正确。不是对文本进行编码,而是在打开文件时声明一种编码,然后编写不带编码的文本- Python将自动对其进行编码。
它应该是
####write in .txt file
with open("Test.txt", "wt", encoding='utf-8') as text_file:
n = text_file.write(txt)除非您使用的是Python2,否则您不需要使用编解码器来打开编码文件,同样,您可以在open函数中声明编码:
with open("Test.txt", "rt", encoding='utf-8') as f:
for line in f:
print(line)https://stackoverflow.com/questions/68193584
复制相似问题