需要在文本文件中搜索值,然后从文本文件python3x中提取值所在的行

时间:2019-09-29 16:13:31

标签: python list pdfminer

我有一个大文本文件,我需要搜索它的行,如果该行中有某个值,则将其拉出并将其存储在列表中

当我尝试使用for循环时,它不会逐行显示,而是逐个字符地对其进行检查 我真的不想使用循环,因为文件很大,所以如果你们有任何想法如何搜索文本文件,找到一个值,然后提取该值所在的整行。 s =''' ******************在位置********************************** ********************************************** **材料程序+ SH MUD记录CABIN UML111 + ORS MOD CABIN和WM CABIN ** G ENERGY 4“ 3/4 DRILLING JAR QN475-0029 ** 86 JTS 4“ 1 / 2TUBING 13,5#P110 NVAM + 44 jtsTBG 2” 7/8 6.4#N80 N.VAM + 2 PUP JTS 13''3/8 68 68 N80 BTC + 1 PUP JTS 7 ''32#P110 N.VAM + 70 JTS管道2“ 3/8 +1 X-OVER 9“ 5/8 47#P110N,VAM PIN X BTCBOX **烧焦器设备和机组 ''' 代码:

 def convert_pdf_to_txt(path):
        rsrcmgr = PDFResourceManager()
        retstr = io.StringIO()
        codec = 'utf-8'
        laparams = LAParams()
        device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
        fp = open(path, 'rb')
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        password = ""
        maxpages = 0
        caching = True
        pagenos = set()

        for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages,
                                      password=password,
                                      caching=caching,
                                      check_extractable=True):
            interpreter.process_page(page)

        text = retstr.getvalue()

        fp.close()
        device.close()
        retstr.close()
        return text

    path="C:\DDR reports\Smith General server\DDR Algeria\DDR\\07.July\\02.07.2019\\BELN-1-Daily Drilling Report-Report Number51-(07-02-2019).pdf"

    r=convert_pdf_to_txt(path)
        regex=re.compile('[1-9]*\s[a-zA-Z]*\sJar', re.IGNORECASE)
list_jar=list()
i=0
for line in r.split('\n'):
    #search_v=re.findall(pattern,r)
    x=re.findall(regex, line)

1 个答案:

答案 0 :(得分:0)

我认为您需要像这样的for循环: 对于open('file.txt')中的x: 如果x中的“值”: List.append(x)