Ler vários arquivos PDF de uma pasta e gerar uma lista

Estou iniciando nos estudos sobre Python e quero fazer uma lista de arquivos a partir de uma fonte de dados de uma pasta de PDFs. Iniciei fazendo um FOR para a leitura dos arquivos, mas não me retorna todos os PDFs. Entao estou testando fazer PDF por PDF, mas não consigo gerar uma lista com 3 colunas. Segue o código que estou executando:

path = 'caminho-do-arquivo.pdf'

for texto in read_pdf(path, pages='all'):
  texto = texto.dropna(how='all', axis=1)
  nome = texto['Nome Passageiro']
  destino = texto['Desembarque']
  lista = (nome, destino)
  display(lista)

É necessário percorrer todos os ficheiros PDF da pasta, e não apenas um. Isso pode ser feito usando o módulo os ou glob para listar os arquivos no diretório.

Está a utilizar uma função read_pdf. Pode ser das bibliotecas camelot, tabula-py, ou pdfplumber, mas o código não indica qual.

Eis uma abordagem que utiliza o pdfplumber para a leitura de PDFs, o glob para obter os ficheiros PDF e o pandas para armazenar os dados numa DataFrame:

Preciso de instalar o pdfplumber e o pandas.

import os
import pdfplumber
import pandas as pd

# Set the path to the folder containing the PDFs
folder_path = 'path-to-pdf-folder'

# List to store data from each PDF
data_list = []

# Iterate through all PDF files in the folder
for file_name in os.listdir(folder_path):
    if file_name.endswith('.pdf'):
        file_path = os.path.join(folder_path, file_name)
        
        # Open the PDF
        with pdfplumber.open(file_path) as pdf:
            # Read each page of the PDF
            for page in pdf.pages:
                # Extract text from the page (you can also extract tables)
                page_text = page.extract_text()
                
                # Assuming your data is in table format (adjust as necessary)
                # Here, we extract names and destinations manually from text.
                # You may need to use more specific logic to parse the text or tables.
                # Example logic for parsing can be updated based on your PDF structure.
                
                if 'Nome Passageiro' in page_text and 'Desembarque' in page_text:
                    # Dummy parsing: This is where you'd extract the actual values from your PDF.
                    # You'll need to modify this part based on how your PDF is structured.
                    nome_passageiro = "Example Name"  # Replace with actual extraction logic
                    desembarque = "Example Destination"  # Replace with actual extraction logic
                    
                    # Append the extracted data to the list
                    data_list.append([nome_passageiro, desembarque])

# Convert the list to a pandas DataFrame for better visualization and further processing
df = pd.DataFrame(data_list, columns=['Nome Passageiro', 'Desembarque'])

# Display the DataFrame
print(df)

# Optionally, you can export the DataFrame to a CSV or Excel file:
df.to_csv('output.csv', index=False)  # Export to CSV
# df.to_excel('output.xlsx', index=False)  # Export to Excel