我很难找到一段代码来工作。我想循环遍历一个文件夹中的pdf文件,提取表格包认为这些表是什么,将它们解压缩到一个dataframe中,并将所有表从一个特定的pdf写入一个csv文件。
我查看了this post (和其他几个),但是我仍然很难让它正常工作。脚本似乎循环遍历文件,提取一些表,但它似乎不迭代文件,而且我无法让它将所有的数据写入到csv文件中。脚本只是在csv中编写最后一个脚本。
这就是我到目前为止所拥有的。任何帮助,特别是,如何循环正确的文件,并将所有表从一个pdf写入一个csv文件。我被困住了..。
pdf_folder = 'C:\\PDF extract\\pdf\\'
csv_folder = 'C:\\PDF extract\\csv\\'
paths = [pdf_folder + fn for fn in os.listdir(pdf_folder) if fn.endswith('.pdf')]
for path in paths:
listdf = tabula.read_pdf(path, encoding = 'latin1', pages = 'all', nospreadsheet = True,multiple_tables=True)
path = path.replace('pdf', 'csv')
for df in listdf: (df.to_csv(path, index = False)) 发布于 2017-06-09 18:33:02
就像斯科特·亨特提到的那样,你没有使用CSV_folder
此外,我认为您正在覆盖创建的.csv文件:
for df in listdf: (df.to_csv(path, index = False))
对于For -循环的每次迭代,路径变量保持不变。
编辑:,您可能应该尝试这样做:
pdf_folder = 'C:\\PDF extract\\pdf\\'
paths = [pdf_folder + fn for fn in os.listdir(pdf_folder) if fn.endswith('.pdf')]
for path in paths:
listdf = tabula.read_pdf(path, encoding = 'latin1', pages = 'all', nospreadsheet = True,multiple_tables=True)
path = path.replace('pdf', 'csv')
df_concat = pd.concat(listdf)
df_concat.to_csv(path, index = False)https://stackoverflow.com/questions/44464436
复制相似问题