如何将表中的多行数据转换为通过OCD导出的单行数据?

2024-09-28 03:13:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个PDF(附件),它被转换成.txt使用OCR。OCR输出看起来如下所示

'2 VERFEN 100MCG NO11909 - Verve AMPO 1.00 47.70 0.00 47.70 47.70\n',

 'INJECTION 2ML 28/02/202 ULE\n',

 '(FENTANYL) 2 HEGCUNIE\n',

 'VERVE\n',

 '3 ADRENOR 4MG INABA294 AMPO 2.00 112.88 0.00 112.88 112.88\n',

 'INJECTION 2ML oe ULE\n',

 '(NORADRENALINE 31/08/202 HEGORINIE\n',

 ') SAMARTH 1\n',

 '4 CELHEP; 50001U; HP11941A Celon NOS 3.00 267.00 0.00 267.00 267.00\n',

 'INJECTION; \n',

 '(HEPARIN); 30/06/202 HEGGUNJE\n',

 'CELON 2\n',

enter image description here

我需要这种格式的输出

'2 VERFEN 100MCG INJECTION 2ML (FENTANYL) VERVE NO11909 - 28/02/2021 Verve AMPO ULE 1.00 47.70 0.00 47.70 47.70\n',


'3 ADRENOR 4MG INJECTION 2ML (NORADRENALINE) SAMARTH   INABA2942 -31/08/202 AMPO ULE 2.00 112.88 0.00 112.88 112.88\n',


'4 CELHEP; 50001U; INJECTION; (HEPARIN);  CELON   HP11941A 30/06/2022 Celon NOS 3.00 267.00 0.00 267.00 267.00\n',

最后,我需要保留表格式信息


Tags: ocrinjectionverveampoulecelonhp11941anoradrenaline
1条回答
网友
1楼 · 发布于 2024-09-28 03:13:00

这不是一个优化的解决方案

如果所需输出中每行的第一个字符应始终是一个数字,后跟空格,那么问题可以分解为识别模式,然后编写代码将这些行连接到下一个模式

标识字符串开头数字的正则表达式是^'[0-9]{2,3,4}

正则表达式将查找一位、两位、三位或四位数字。注意}后面的空格,它确保我们看到的是正确的模式。这个正则表达式适用于

'2 VERFEN 100MCG NO11909 - Verve AMPO 1.00 47.70 0.00 47.70 47.70\n',
'INJECTION 2ML 28/02/202 ULE\n',
'(FENTANYL) 2 HEGCUNIE\n',
'VERVE\n'

但不是为了

'2 VERFEN 100MCG NO11909 - Verve AMPO 1.00 47.70 0.00 47.70 47.70\n',
'INJECTION 2ML 28/02/202 ULE\n',
'(FENTANYL) \n',
'2 HEGCUNIE\n',
'VERVE\n'

两个2s将分别处理

代码中的逻辑可能如下所示-

  1. 声明临时字符串变量
  2. 做3到5次直到文件结束
  3. 读取文件中的每一行
  4. 如果模式在直线中匹配,则1。将临时字符串变量写入new文件,2。清除临时字符串变量
  5. 从末尾删除\n,',并将该行连接到临时字符串变量

如果不希望第一行为空,则可能需要处理首次写入文件的操作

相关问题 更多 >

    热门问题