Forloop,用于将目录中的所有PDF转换为excel文件不工作-python

Forloop,用于将目录中的所有PDF转换为excel文件不工作-python,python,excel,pdf,tabula,Python,Excel,Pdf,Tabula,我正在尝试将文件夹中的所有PDF转换为excel文件。为此,我使用以下代码,尽管我收到以下错误: FileNotFoundError: [Errno 2] No such file or directory: 'filepath.pdf' 以下是不起作用的代码: # import packages needed import glob !pip install tabula-py import tabula # set up working directory my_dir = 'C:/Us

我正在尝试将文件夹中的所有PDF转换为excel文件。为此,我使用以下代码,尽管我收到以下错误:

FileNotFoundError: [Errno 2] No such file or directory: 'filepath.pdf'
以下是不起作用的代码:

# import packages needed
import glob
!pip install tabula-py
import tabula

# set up working directory
my_dir = 'C:/Users/myfolderwithpdfs'

# transform the pdfs into excel files
for filepath in glob.iglob('my_dir/*.pdf'):
    tabula.convert_into("filepath.pdf","filepath.xlsx", output_format="xlsx")
当我仅使用for循环打印文件列表时(如下所示)

或转换为单个文件

tabula.convert_into("myfilename.pdf", "myfilename.xlsx", output_format="xlsx")

我的代码没有遇到任何问题或错误。

您应该在循环中更正my_dir,因为它正在查找一个名为“my_dir”的目录,替换为实际目录。另外,您应该只使用在循环中创建的filepath引用,而不需要使用实际的字符串

# import packages needed
import glob
import tabula

# transform the pdfs into excel files
for filepath in glob.iglob('C:/Users/myfolderwithpdfs/*.pdf'):
    tabula.convert_into(filepath, output_format="xlsx")

当您将
my_dir
放入字符串中时,它实际上是在寻找一个名为
my_dir
的目录。尝试将其更改为
glob.iglob(my_dir+'/*.pdf')
。在for循环中也不使用
filepath
变量。尝试将其更改为
tabla.convert_为(filepath,'filepath.xlsx',output_format='xlsx')
谢谢!第一个技巧是可行的,但是从tabla.convert_-to中删除引号实际上并不可行。它不创建excel文件,而是创建一个空文本编辑器。它试图为每个文件上传它,但没有成功。此外,在运行代码后,我的PFD已损坏且无法读取(无法打开)。谢谢Rafael。关于路径改变,我也尝试过。奇怪的是(可能是因为我是python新手),下面的代码实际上在工作对于glob.iglob('my_dir/*.pdf'):print(filepath)``中的filepath,虽然我使用my_dir调用我的目录,但tabla.convert_-into的建议更改实际上并不起作用,因为该函数需要三个参数。我也尝试了上面arak33的建议,但没有任何运气。问题是tabla不支持直接转换为.xlsx。请按照这里的说明操作
# import packages needed
import glob
import tabula

# transform the pdfs into excel files
for filepath in glob.iglob('C:/Users/myfolderwithpdfs/*.pdf'):
    tabula.convert_into(filepath, output_format="xlsx")