【问题标题】:file.write only write the first string of Regex Resultsfile.write 只写入正则表达式结果的第一个字符串
【发布时间】:2022-11-18 02:45:57
【问题描述】:

我正在尝试将找到的所有正则表达式字符串写入文本文件。当我运行脚本时,它只将第一个字符串写入文本文件。我错过了什么?感谢您的协助。

import re
import csv
import PyPDF2

#Path to file
CROZER = (r"C:\Users\PC\Documents\Prospect Data\Crozer Invoices\rest of inovices\Crozer.pdf")

#Reading PDF
doc = PyPDF2.PdfFileReader(CROZER)
pages = doc.getNumPages()

#Search Pattern
PO = re.compile(r'PO[:]\s\w{3}\d{0,}|Invoice\s#:\s\d{0,}')
list = []

for i in range(pages):
    current_page = doc.getPage(i)
    text = current_page.extractText()
        #print(text)
    if re.findall(PO, text):
     CINV = (re.findall(PO, text))
    print(CINV)

    with open('CI.txt', 'w+', encoding='utf8') as file:
        file.write(str(CINV))

我尝试了文件写入但没有结果。

【问题讨论】:

    标签: python string


    【解决方案1】:

    如果你想将内容附加到文件末尾而不是用w+覆盖它,你应该使用a+模式。

    with open('CI.txt', 'a+', encoding='utf8') as file:
    

    1.2 开放模式的定义 r, r+, w, w, a, a+:

    如果文件不存在或打开现有文件,则 r 会抛出错误 文件不截断以供阅读;文件指针位置在 文件的开头。

    如果文件不存在,则 r+ 会抛出错误 存在或打开现有文件而不截断它以供阅读和 写作;文件开头的文件指针位置。

    w 创建一个新文件或截断现有文件,然后打开它 写作;文件开头的文件指针位置。

    w+ 创建一个新文件或截断现有文件,然后打开它 读写;开头的文件指针位置 文件。

    a 创建新文件或打开现有文件进行写入; 文件末尾的文件指针位置。

    a+ 创造了一个新的 文件或打开现有文件进行读写,以及文件 文件末尾的指针位置。

    Source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      相关资源
      最近更新 更多