【发布时间】:2021-06-22 01:58:18
【问题描述】:
我想从pdf文件中提取文本,试过了:
directory = r'C:\Users\foo\folder'
for x in os.listdir(directory):
print(x)
x = x.replace('.pdf','')
filename = os.fsdecode(x)
print(x)
if filename.endswith('.pdf'):
with pdfplumber.open(x) as pdf1:
page1 = pdf1.pages[0]
text1 = page1.extract_text()
print(text1)
它打印出来了:
20170213091544343.pdf
20170213091544343
看到文件名是20170213091544343,我补充道:
else:
with pdfplumber.open(x) as pdf1:
page1 = pdf1.pages[0]
text1 = page1.extract_text()
print(text1)
读取文件以防文件名没有 .pdf 并捕获错误:
20170213091544343.pdf
20170213091544343
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-34-e370b214f9ba> in <module>
16
17 else:
---> 18 with pdfplumber.open(x) as pdf1:
19 page1 = pdf1.pages[0]
20 text1 = page1.extract_text()
C:\Python38\lib\site-packages\pdfplumber\pdf.py in open(cls, path_or_fp, **kwargs)
56 def open(cls, path_or_fp, **kwargs):
57 if isinstance(path_or_fp, (str, pathlib.Path)):
---> 58 fp = open(path_or_fp, "rb")
59 inst = cls(fp, **kwargs)
60 inst.close = fp.close
FileNotFoundError: [Errno 2] No such file or directory: '20170213091544343'
【问题讨论】:
-
os.listdir()只返回文件名。你也需要目录。 -
嗨@JohnGordon,你能详细说明一下吗?
-
您必须使用完整路径
os.path.join(directory, x),并且您必须保留扩展名.pdf- 打开C:\Users\foo\folder\20170213091544343.pdf而不是20170213091544343
标签: python pdf pdfplumber