使用 python 通过步骤将 pdf 转换为 csv

Converting a pdf to a csv with steps using python

因此,正如标题所示,我想将 pdf 转换为 csv,以便我可以在我的项目中使用该数据。问题是 pdf 格式根本不适合转换为 csv 文件。对于人类 reader,该文件是完全有意义的,但对于计算机来说,它是极其难以理解的。我很难在这里解释,但我会鼓励我的数据科学家同行帮助我找到相同的解决方案。

pdf 可以在这里找到:

https://mospi.gov.in/documents/213904/533217//Appendix-II1602843196372.pdf/7da592e8-0da1-abd0-3b15-da3227f76fea

任何 ideas/techniques 都会非常有帮助。

我在评论里说了

That should be a doddle for experienced "Field Staff" so just program the same way, the novice needs to note that the headers are the same on each page thus not needed after first memorize, then the rows are all similar so we only need the bits between top matter and bottom matter, now PDF has no white space just space that is white, so we extract with padding as best we can and pdftotext can isolate and pad all in one line of code. then we have our spatial csv (space character separated values) exactly the way the field staff sends to their brain and excel can accept that as input no promblem

好吧,那个特定的文件并不像它看起来或预期的那么简单(有或没有 python),因为它会导致许多可变形状空隙的问题。我尝试了几种单行方法来尝试获得良好的 pre-process 输入,这是最干净的,但即使在导入 excel 时仍然有额外的内容,需要进行一些小的编辑以整理双空行。

无论如何 windows 命令是(你可以从 python poppler utils 调用它)

poppler-22.04.0\Library\bin>pdftotext -fixed 4 -nopgbrk in2.pdf temp.txt & type temp.txt |find /V "NSS" |find /V "F-" |Find /V "code" |Find /V "(7)" >out.txt

然后你可以用不同的方式解析,但我个人会将其导入 excel 进行清理并使用按钮或 vba 而不是 python.[=15 导出为 csv =]