无法使用python脚本将pdf转换为文本
我想使用命令pdftotext将所有.pdf文件从特定目录转换为.txt格式。。。但是我想用一个python脚本来做这个。。。 我的脚本包含:无法使用python脚本将pdf转换为文本,python,glob,Python,Glob,我想使用命令pdftotext将所有.pdf文件从特定目录转换为.txt格式。。。但是我想用一个python脚本来做这个。。。 我的脚本包含: import glob import os fullPath = os.path.abspath("/home/eth1/Downloads") for fileName in glob.glob(os.path.join(fullPath,'*.pdf')): fullFileName = os.path.join(fullPath, fi
import glob
import os
fullPath = os.path.abspath("/home/eth1/Downloads")
for fileName in glob.glob(os.path.join(fullPath,'*.pdf')):
fullFileName = os.path.join(fullPath, fileName)
os.popen('pdftotext fullFileName')
但我得到了以下错误:
Error: Couldn't open file 'fullFileName': No such file or directory.
您正在将
fullFileName
逐字传递到os.popen
。您应该这样做(假设不必转义fullFileName
):
还要注意的是,os.popen
被认为是不推荐使用的,最好使用子流程
模块:
import subprocess
retcode = subprocess.call(["/usr/bin/pdftotext", fullFileName])
它还可以更安全地处理
fullFileName
中的空格和特殊字符。您正在将fullFileName
逐字传递到os.popen
。您应该这样做(假设不必转义fullFileName
):
还要注意的是,os.popen
被认为是不推荐使用的,最好使用子流程
模块:
import subprocess
retcode = subprocess.call(["/usr/bin/pdftotext", fullFileName])
它还可以更安全地处理
fullFileName
中的空格和特殊字符。将最后一行更改为
os.open('pdftotext {0}'.format(fullFileName))
这样将传递
fullFileName
的值,而不是名称。将最后一行更改为
os.open('pdftotext {0}'.format(fullFileName))
这样,将传递
fullFileName
的值,而不是名称。fullFileName=os.path.join(fullPath,fileName)
是冗余的fullFileName=os.path.join(fullPath,fileName)
是冗余的,但有一个捕获。。。它仅转换第一个pdf。。。虽然我想转换来自dirWell的所有内容,但我当然会将所有内容放在您最初调用os.popen
的for
循环中。我也尝试了该代码。。。但它仍然只能转换列表中的第一个文件……它是否在每个pdf
文件上运行pdftotext
?您可以通过将print
语句(或调用print()
函数)放入循环中,或通过添加计数器并在末尾打印其值来判断。它调用的是所有文件,但只有一个catch。。。它仅转换第一个pdf。。。虽然我想转换来自dirWell的所有内容,但我当然会将所有内容放在您最初调用os.popen
的for
循环中。我也尝试了该代码。。。但它仍然只能转换列表中的第一个文件……它是否在每个pdf
文件上运行pdftotext
?您可以通过将print
语句(或调用print()
函数)放入循环中,或通过添加计数器并在末尾打印其值来判断。它调用的是所有文件,但只有一个catch。。。它仅转换第一个pdf。。。虽然我想从目录中转换所有内容,但有一个问题。。。它仅转换第一个pdf。。。然而,我想转换该目录中的所有内容