3

複数の入力可能な pdf フォームに入力されたデータを 1 つの csv ファイルに変換しようとしています。
このコードは、いくつかのステップで構成されています。

  1. 新しい .csv ファイルを開く (ヘッダー行)
  2. 「for...in」ループで複数のPDFフォームを開く
  3. フォームフィールドに入力されたデータを 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

etc. etc. 「なし」は「空のテキスト ボックス」を表します。「1」と「0」は「はい」と「いいえ」の出力を表します。

4

1 に答える 1