как преобразовать файл PDF в файл Excel с помощью Python
Я хочу преобразовать файл PDF в Excel и сохранить его локально через python. Я преобразовал PDF в формат Excel, но как мне сохранить его локально?
мой код:
df = ("./Downloads/folder/myfile.pdf")
tabula.convert_into(df, "test.csv", output_format="csv", stream=True)
7 ответов
Вы можете указать весь выходной путь, а не только output.csv
df = ("./Downloads/folder/myfile.pdf")
output = "./Downloads/folder/test.csv"
tabula.convert_into(df, output, output_format="csv", stream=True)
Надеюсь, что это ответ на ваш вопрос!!!
В моем случае сработал сценарий ниже:
import tabula
df = tabula.read_pdf(r'C:\Users\user\Downloads\folder\3.pdf', pages='all')
tabula.convert_into(r'C:\Users\user\Downloads\folder\3.pdf', r'C:\Users\user\Downloads\folder\test.csv' , output_format="csv",pages='all', stream=True)
я использую гугл коллаб
установить необходимый пакет
!pip install tabula-py
!pip install pandas
Импортировать необходимый модуль
import tabula
import pandas as pd
Чтение PDF-файла
data = tabula.read_pdf("example.pdf", pages='1')[0] # "all" untuk semua data, pages diisi nomor halaman
конвертировать PDF в CSV
tabula.convert_into("example.pdf", "example.csv", output_format="csv", pages='1') #"all" untuk semua data, pages diisi no halaman
print(data)
# преобразовать в файл Excel data1 = pd.read_csv("example.csv") data1.dtypes
#теперь сохранить в xlsxdata.to_excel('dataremove.xlsx')
PDF в файл .xlsx:
for item in df:
list1.append(item)
df = pd.DataFrame(list1)
df.to_excel('outputfile.xlsx', sheet_name='Sheet1', index=True)
В документации сказано, что:
Выходной файл будет сохранен в output_path
output_path - это ваш второй параметр, test.csv. Я думаю, он работает нормально, но вы блокируете его не в той папке. Он будет расположен рядом с вашим скриптом (строго говоря - в текущем рабочем каталоге), поскольку вы не указали полный путь.
вы также можете использоватьcamelot
в комбинации сpandas
import camelot
import pandas
tables = camelot.read_pdf(path_to_pdf, flavor='stream',pages='all')
df = pandas.concat([table.df for table in tables])
df.to_csv(path_to_csv)
Код, который сработал для меня, был приведен ниже, но он читает не все страницы pdf, а только несколько в середине. Что я делаю не так?
import tabula
df = tabula.read_pdf(r'C:\Users\user\Downloads\folder\3.pdf', pages='all')
tabula.convert_into(r'C:\Users\user\Downloads\folder\3.pdf', r'C:\Users\user\Downloads\folder\test.csv' , output_format="csv",pages='all', stream=True)