我正在尝试将在多个可填写的 pdf 表单中输入的数据转换为一个 csv 文件。
此代码包含几个步骤:
- 打开新的 .csv 文件(标题行)
- 使用“for...in”循环打开多个 pdf 表单
- 将表单域中输入的数据转换为 csv
但是,在运行命令时,我收到错误:
fc-int01-generateAppearances: None
Traceback (most recent call last):
File "C:\Python27\Scripts\test3.py", line 31, in <module>
writer.writerow(value)
_csv.Error: sequence expected
如果我只是 python 中的打印值(表单数据),它可以工作。但导入数据不会。可能还存在从行到列的值的问题。我希望我很清楚。
这是我的代码:
import glob
import os
import sys
import csv
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdftypes import resolve1
#input file path for specific file
#filename = "C:\Python27\Scripts\MH_1.pdf"
#fp = open(filename, 'rb')
#open new csv file
out_file=open('C:\Users\Wonen\Downloads\Test\output.csv', 'w+')
writer = csv.writer(out_file)
#header row
writer.writerow(('Name coordinator', 'Date', 'Address', 'District',
'City', 'Complaintnr'))
#enter folder path to open multiple files
path = 'C:\Users\Wonen\Downloads\Test'
for filename in glob.glob(os.path.join(path, '*.pdf')):
fp = open(filename, 'rb')
#read pdf's
parser = PDFParser(fp)
doc = PDFDocument(parser)
#doc.initialize() # <<if password is required
fields = resolve1(doc.catalog['AcroForm'])['Fields']
for i in fields:
field = resolve1(i)
name, value = field.get('T'), field.get('V')
print '{0}: {1}'.format(name, value)
writer.writerow(value)
带有文本 pdf 的输出(包括所有输出)使用print (repr(value))
:
None
'Crip Gang'
None
None
None
/Ja
None
/1
/1
None
None
/Ja
/Ja
None
None
None
'wfwf'
'sd'
'dfwf'
'ffasf'
'tsdbd'
'dfadfasdf'
None
'df'
None
'asdff'
None
'wff'
None
'ffs'
None
None
None
None
None
None
None
None
None
None
None
'1'
'2'
'7'
/0
'Ja'
'Two unlimited'
'Captain Jack'
None
'www.kijkbijmij.nl'
'Onderverhuur'
/Ja
“无”代表“空文本框”;“1”和“0”代表“是”和“否”输出。