在Python 3中,我有一个名为“Ativos_Fevereiro_2018_servidores.pdf”的PDF文件,它有6,041页。我在一台Ubuntu机器上。文件在这里:https://drive.google.com/file/d/1P8kF0gUOVls6sOGed4R0C2PlVF5RFtU6/view?usp=sharing
每页的顶部都有两行文字,并在下面有一个带标题和两列的表格。每个表格有36行,最后一页的行数会少一些。
每页结束时,在表格之后还有一行文字。
我想从这个PDF中创建CSV,只考虑页面中的表格。忽略表格前后的文字。
为避免出现Java内存错误,我想将文件分成300页的组。我在tabula-py中完成了这个操作。
但是我制定的范围是错误的:
每页结束时,在表格之后还有一行文字。
我想从这个PDF中创建CSV,只考虑页面中的表格。忽略表格前后的文字。
为避免出现Java内存错误,我想将文件分成300页的组。我在tabula-py中完成了这个操作。
import tabula
import pandas as pd
dfs = []
for i in range(1,6041, 300):
if i != 1:
i = i + 1
i2 = i + 300
if i2 > 6041:
i2 = 6041
print(i)
print(i2)
try:
df = tabula.read_pdf("Ativos_Fevereiro_2018.pdf", encoding='latin-1', spreadsheet=True, pages='i-i2', header=0)
dfs.append(df)
print('Page ', len(df), ' parsed.')
except:
print('Error on page: ', i)
output = pd.concat(dfs)
output.to_csv('servidores_rj_ativos_fev_18.csv', encoding='utf-8', index=False)
但是我制定的范围是错误的:
1
301
Error: Syntax error in page range specification
Error on page: 1
302
602
...
Error: Syntax error in page range specification
Error on page: 5702
6002
6041
Error: Syntax error in page range specification
Error on page: 6002
Traceback (most recent call last):
File "roboseguranca_pdftocsv.py", line 26, in <module>
output = pd.concat(dfs)
File "/home/reinaldo/Documentos/Code/intercept/seguranca/lib/python3.6/site-packages/pandas/core/reshape/concat.py", line 212, in concat
copy=copy)
File "/home/reinaldo/Documentos/Code/intercept/seguranca/lib/python3.6/site-packages/pandas/core/reshape/concat.py", line 245, in __init__
raise ValueError('No objects to concatenate')
ValueError: No objects to concatenate
请问,我如何纠正范围错误?