前提・実現したいこと
質問させていただきます。
pythonにて、EXCELで記入してあるPDFのURL(A1A8)からPDFをダウンロードし,ダウンロードしたPDFから文字をおこし、分かち書きをする。分かち書きしたテキストを保存し、EXCELのPDFのURLの隣のセルにそれぞれ出力(B1B8)したいと考えています。
しかしこのコードだとEXCELのB8にしかテキストが出力されません。
どのように改善したらよいかどなたかお教えください。
よろしくおねがいします
コード
import
1import os.path 2import openpyxl as op 3from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 4from pdfminer.converter import TextConverter 5from pdfminer.layout import LAParams 6from pdfminer.pdfpage import PDFPage 7from io import StringIO 8import os.path 9from janome.tokenizer import Tokenizer 10import re 11from openpyxl import Workbook, load_workbook 12import termextract 13 14 15 16 17wb = op.load_workbook('urls.xlsm') 18ws = wb.get_sheet_by_name('Sheet1') 19now = wb.active 20 21urllist = [] 22 23for i in range(1,9): 24 url = ws['A'+str(i)].value 25 #print(now[some].value) 26 urllist.append(url) 27 28for url in urllist: 29 savename = os.path.basename(url) 30 urllists = savename.rstrip('\r\n') 31 #print(urllists) 32 33 rsrcmgr = PDFResourceManager() 34 rettxt = StringIO() 35 laparams = LAParams() 36 laparams.detect_vertical = True 37 device = TextConverter(rsrcmgr, rettxt, codec='utf-8', laparams=laparams) 38 39 40 urllib.request.urlretrieve(url,urllists) 41 42 fp = open(urllists, 'rb') 43 interpreter = PDFPageInterpreter(rsrcmgr, device) 44 #print(rettxt.getvalue()) 45 46 for page in PDFPage.get_pages(fp, pagenos=None, maxpages=0, password=None,caching=True, check_extractable=True): 47 interpreter.process_page(page) 48 49 50 51 f = open(str(savename) + ".txt","w") 52 f.write(rettxt.getvalue()) 53 f.close() 54 55 ff = open(str(savename)+ '.txt') 56 allf = ff.read() 57 58 txt = allf.replace('\n','') 59 txt = txt.replace('\r','') 60 txt = ''.join(txt.split()) 61 ff.close() 62 63 64 t = Tokenizer() 65 with open(str(savename)+'_wakati'+'.txt','w') as fw: 66 for token in t.tokenize(txt,wakati = True): 67 fw.write(str(token)) 68 fw.write(' ') 69 70 with open(str(savename)+'_wakati'+'.txt') as fs: 71 data = fs.read() 72 #print(data) 73 #print('end') 74 75 print('end') 76 wb1 = op.load_workbook('urls.xlsx') 77 ws1 = wb1.active 78 ws1['B'+str(i)].value = data 79 wb1.save('urls.xlsx') 80 81print('end') 82 83```
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/05 01:48