我正在尝试编写一个执行此操作的代码块:它首先从pdf中提取文本,然后创建包含其中内容的文本文件。这就是我写的:
import os
import pyPdf
import re
##function that extracts text from pdf
def pdfcontent(filename):
ct = ""
pdf = pyPdf.PdfFileReader(file(filename,"rb"))
for i in range(0,pdf.getNumPages()):
ct += pdf.getPage(i).extractText() + "\n"
return ct
##funcion that generates a txt file from a pdf
def pdftotxt(filename):
##first, convert pdf to txt
pdfct = pdfcontent(filename)
##fix filename problem
newfn = re.sub(".pdf", "", filename)
#now generate txt
fo = open(r'C:\Users\xxx\PycharmProjects\untitled\decisiontxt\' + newfn + ".txt","wb")
fo.write(pdfct)
fo.close()
pdftotxt("PDFfromDocumentum.pdf")
编辑:我解决了以前的问题,然后出现了另一个问题:
File "C:/Users/xxx/PycharmProjects/untitled/fdsa", line 22
fo = open(r'C:\Users\xxx\PycharmProjects\untitled\decisiontxt\' + newfn + ".txt","wb")
^
SyntaxError: EOL while scanning string literal
在我看来,Python花了
fo = open(r'C:\Users\xxx\PycharmProjects\untitled\decisiontxt\' + newfn + ".txt","wb")
作为字符串而不是命令。这个问题的解决方案是什么?
答案 0 :(得分:0)
如果您希望脚本创建新文件(如果不存在),请使用" wb"作为模式。
有关使用文件模式的详细信息,请参阅this。
编辑(基于您的编辑)
您在解析时获得EOL的原因是您正在逃避关闭的aphostrophe \'
。使用反斜杠来转义撇号之前的反斜杠。 I.E \\'
答案 1 :(得分:0)
尽管您使用的是原始字符串,但您应该转到最后\
open(r'C:\Users\xxx\PycharmProjects\untitled\decisiontxt\\' + newfn + ".txt","wb")