如何使用Python从pdf创建文本文件?

时间:2014-07-15 19:31:37

标签: python

我正在尝试编写一个执行此操作的代码块:它首先从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")

作为字符串而不是命令。这个问题的解决方案是什么?

2 个答案:

答案 0 :(得分:0)

如果您希望脚本创建新文件(如果不存在),请使用" wb"作为模式。

有关使用文件模式的详细信息,请参阅this

编辑(基于您的编辑)

您在解析时获得EOL的原因是您正在逃避关闭的aphostrophe \'。使用反斜杠来转义撇号之前的反斜杠。 I.E \\'

答案 1 :(得分:0)

尽管您使用的是原始字符串,但您应该转到最后\

open(r'C:\Users\xxx\PycharmProjects\untitled\decisiontxt\\' + newfn + ".txt","wb")

有关详细信息,请参阅Python raw strings and trailing backslash