You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python改写TXT文件:指定位置换行及PDF转TXT工具推荐

解决文本换行问题 + PDF转TXT工具推荐

一、在特定位置插入换行的最简Python实现

根据你的需求,我们需要匹配**金额(xx.xx或带千分位逗号的xxx,xxx.xx格式)后面紧跟日期(如17 Apr)**的场景,然后在两者之间插入换行。用正则表达式是最直接高效的方式,Python内置的re模块就能轻松搞定。

代码示例

import re

# 你的原始文本片段
raw_text = "15 Apr 20DDOPEN 100.00DDBENNON WATER SRVCS29.00DDBG BUSINESS106.00BPC BOB PETROL MINISTRY78.03BPC BARBARA STREAMING DATA30.50CRPAYPAL Z4J22FR450.00CRPAYNAL AAWDL4Z4J22222KHMG30.0019,028.4917 Apr 20CRCASH IN AT HSBC BANK"

# 正则模式:匹配金额 + 紧跟的日期开头(数字+空格+月份缩写)
# 金额支持带千分位逗号的格式,比如19,028.49
date_split_pattern = r'(\d{1,3}(?:,\d{3})*\.\d{2})(\d+ \w{3})'

# 第一步:在金额和日期之间插入换行符
formatted_text = re.sub(date_split_pattern, r'\1\n\2', raw_text)

# 可选优化:在金额和后续字母前缀(如DD、BPC)之间加空格,进一步提升可读性
space_add_pattern = r'(\d{1,3}(?:,\d{3})*\.\d{2})([A-Za-z]+)'
formatted_text = re.sub(space_add_pattern, r'\1 \2', formatted_text)

# 输出或保存处理后的文本
print(formatted_text)
# 如果要保存到文件:
# with open('formatted_bill.txt', 'w', encoding='utf-8') as f:
#     f.write(formatted_text)

代码说明

  1. 日期换行处理:
    • 正则date_split_pattern精准匹配金额(含千分位)+ 紧跟的日期开头,替换时用\1\n\2把两者用换行分隔,解决日期和金额粘连的问题。
  2. 可读性优化:
    • 额外的space_add_pattern处理金额和字母前缀粘连的情况(比如100.00DDBENNON变成100.00 DDBENNON),让交易记录的结构更清晰。

二、推荐Python PDF转TXT工具

如果你的银行账单是结构化的(有表格、固定排版),推荐以下工具,比直接转成杂乱TXT体验好很多:

  • pdfplumber:

    • 优点:对表格、页眉页脚的提取精度极高,能保留原始排版结构,支持提取特定页面、特定区域的内容,API简单易用。
    • 安装:pip install pdfplumber
    • 适合:银行账单这类有清晰表格结构的PDF,能直接提取每一行交易记录,减少后续文本整理的工作量。
  • PyPDF2:

    • 优点:轻量、入门简单,适合快速提取纯文本,无需复杂排版处理。
    • 安装:pip install PyPDF2
    • 缺点:对复杂排版的PDF提取效果一般,可能出现文本乱序、粘连的情况。
  • pdfminer.six:

    • 优点:底层灵活,支持自定义文本提取规则,能处理编码复杂的PDF。
    • 安装:pip install pdfminer.six
    • 适合:需要高度定制化提取逻辑的场景,比如处理非标准格式的PDF。

如果你的银行账单是扫描版的图片PDF,需要先用OCR工具(比如pytesseract)转成可编辑文本,再用上面的方法处理。

内容的提问来源于stack exchange,提问作者tedioustortoise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:33:02