|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
运行没反应 没错误提示 但是没转换
import pdfplumber
def pdf2txt(file_name):
p = pdfplumber.open(file_name + ".pdf")
page_num = len(p.pages)
with pdfplumber.open(file_name + ".pdf") as pdf:
for i in range(page_num):
page = pdf.pages[i]
text = page.extract_text()
if text != None:
with open(file_name + ".txt", "a", encoding = "utf-8") as f:
f.write(text)
print(file_name+' '+str(i+1)+'/'+str(page_num)+' 页读写完成', end='\r')
file_name = r'f:\\123'
pdf2txt(file_name)
在你的代码中,我没有看到显著的错误。问题可能出在你所处理的PDF文件上,可能是你的PDF文档没有包含可提取的文本,而是包含图片或扫描件。这时, pdfplumber 的 extract_text() 方法将返回 None 。
在你的代码中,你对每一页文本做了 None 检查。如果所有页面的文本都是 None ,你的代码将不会写入任何东西到文本文件,同时也没有任何错误提示。
为了解决这个问题,你可以在 extract_text() 返回 None 时,打印出一些警告信息。这样你可以知道PDF文档中是否存在可提取的文本。
这是修改后的代码:
- import pdfplumber
- def pdf2txt(file_name):
- with pdfplumber.open(file_name + ".pdf") as pdf:
- page_num = len(pdf.pages)
- for i in range(page_num):
- page = pdf.pages[ i]
- text = page.extract_text()
- if text != None:
- with open(file_name + ".txt", "a", encoding = "utf-8") as f:
- f.write(text)
- print(file_name+' '+str(i+1)+'/'+str(page_num)+' 页读写完成', end='\r')
- else:
- print(f"警告:第 {i+1} 页没有找到可提取的文本.")
- file_name = r'f:\\123'
- pdf2txt(file_name)
复制代码
在此修改的代码中,我增加了一个else分支,如果 extract_text() 返回 None ,则会打印出警告信息。
请注意,如果你的PDF文件实际上包含的是图像,那么你需要使用OCR(光学字符识别)技术来从图像中提取文本。 pdfplumber 库本身并不包含OCR功能,但它可以与其他具有OCR功能的库(如 pytesseract )一起使用。
|
|