【发布时间】:2022-06-30 15:04:11
【问题描述】:
我有一个看起来像这样的 TXT 文件
ETP 474654 0|170122|160222|MXP| 14045.84| | 4711.00| 0| 0| 0| 0| 4711| 0
BA6 91215257 1|310122| |MXP| | 9053.93| | | | | | |
TDO 301530 1|010222| |MXP| | 280.91| | | | | | |
ETP 475384 0|260122|250222|MXP| 198340.87| | 917.70| 0| 0| 0| 0| 917| 0
ANC 91163164 2|290122| |MXP| | 200.66| | | | | | |
BA6 91215555 1|140222| |MXP| | 193278.06| | | | | | |
TDO 302435 1|150222| |MXP| | 3944.45| | | | | | |
ETP 481186 0|020422|020522|MXP| 53597.34| | 184.08| 0| 0| 184| 0| 0| 0
ANC 91164671 2|120422| |MXP| | 324.32| | | | | | |
BA6 91217161 1|200422| |MXP| | 52027.16| | | | | | |
TDO 306773 1|210422| |MXP| | 1061.78| | | | | | |
ETP 481188 0|020422|020522|MXP| 82599.09| | 275.29| 0| 0| 275| 0| 0| 0
BA6 91217159 1|200422| |MXP| | 80677.32| | | | | | |
TDO 306775 1|210422| |MXP| | 1646.48| | | | | | |
ETP 483241 0|020522|010622|MXP| 162587.22| | 20367.05| 0| 20367| 0| 0| 0| 0
ANC 91165149 2|060522| |MXP| | 1930.81| | | | | | |
BA6 91217906 2|230522| |MXP| | 137083.58| | | | | | |
TDO 308497 1|240522| |MXP| | 3205.78| | | | | | |
ETP 485561 0|300522|290622|MXP| 43411.90| | 43181.22| 43181| 0| 0| 0| 0| 0
ANC 91165759 2|020622| |MXP| | 230.68| | | |
我想提取包含 ETP 的每一行中的所有数据。
前 6 位数字是 ETP ID。
号码|170122|是一个日期。
号码|160222|是一个日期。
下一个值 |14045.84|值也应该显示出来。
如果有一个非 0 值,在这种情况下,下一个非 0 值是 |4711.00|它也应该显示出来。
它应该返回类似的东西
ETP 474654 | 170122 | 160222 | 14045.84 | 4711.00
理想情况下,它应该格式化日期并看起来像这样
ETP 474654 | 17/01/22 | 16/02/22 | 14045.84 | 4711.00
我是 python 新手,想知道这是否可行,是否有人可以指出正确的方向来解决这个问题。感谢您的帮助。
【问题讨论】:
-
您是否已经尝试过?发生了什么特殊问题?
-
您可能对csv 模块感兴趣
-
第一个数字多于6位。
标签: python text data-extraction