hapig 发表于 2020-2-21 10:03

用python按要求提取字符串

求助大神们,我有一个1.txt文件,里面有大量如下内容
Z1478_131_CDEF1563_CABP1_F02_F03_CDEF1563_CABP3_F18_F39
Z1496_001_CDEF2063_F4_F12_F20_IJKL0630_F11_HBA0
Z1496_003_CDEF1563_CABP1_F02_F03_IJKL0584_F12_HBA01
Z1414_067_CDEF1368F24_F25_IJKL0350F26_HBA0
Z0612_043_CDEF1230F12_1G1B_IJKL0301F22_HBA0
Tmp0103_ST2540F15_PAH0_IJKL0299F05_HBA0
Z7896_015_CDEF1261F28_1E7B_IJKL0629_F10_HBA0


现在想用python按照红色的字符和蓝色的字符分别提取出来,结果像是下面这样的,能实现吗,代码怎么写?
第一列
CDEF1563_CABP1_F02_F03
CDEF2063_F4_F12_F20
CDEF1563_CABP1_F02_F03
CDEF1368F24_F25
CDEF1230F12_1G1B
ST2540F15_PAH0
CDEF1261F28_1E7B
第二列
CDEF1563_CABP3_F18_F39
IJKL0630_F11_HBA0
IJKL0584_F12_HBA01
IJKL0350F26_HBA0
IJKL0301F22_HBA0
IJKL0299F05_HBA0
IJKL0629_F10_HBA0

雷_影 发表于 2020-2-21 10:13

这些是什么字符串?

dyliuyunfei 发表于 2020-2-21 10:23

这种先要找出提取规律,规律完成了就可以实现,规律只有自己找,程序编著可参考下面的教程学习先:
字符串操作:https://www.runoob.com/python3/python3-string.html
正则表达式:https://www.runoob.com/python3/python3-reg-expressions.html

hapig 发表于 2020-2-21 10:23

雷_影 发表于 2020-2-21 10:13
这些是什么字符串?

就是普通的字符串,代表设备名字

slq17 发表于 2020-2-21 10:25

```
^Z\d{4}_\d+_(CDEF.*)?(_IJK|_CDEF).*

^Tmp\w+?_(\w+_){1}
```
试试正则表达式. 分2步处理..

446917139 发表于 2020-2-21 10:34

楼上正解 或者看看有没有别人已经针对你这问题封装好的库?

518 发表于 2020-2-21 10:50

楼主你看是不是这个规律    以_为分割,第一次遇到的以字母开头的那一组即属于第二组,接下来遇到长度为8的那一组及之后就是第三组

知意执意 发表于 2020-2-21 16:46

python能实现,但是你这分法没个规律,不好用程序写,下划线个数总变化

知意执意 发表于 2020-2-21 16:59

下面的程序好使,找到的规律是,每个开头段长度大于等于八,小于八的跟在后面
输出两个字典
import os
one = []
two = []
f = open('1.txt','r')
for i in f.readlines():
    text = i[:-1].split('_')
    a = ''
    for j in text:
      if len(j) >= 8:
            a = a + '*' + j
      else:
            a = a + '_' + j
    a = a.split('*')
    one.append(a)
    two.append(a)
print(one)
print(two)

ijwddd 发表于 2020-2-21 21:46

楼主,我想问下为什么你的txe文件里的文本会有颜色的?
页: [1] 2
查看完整版本: 用python按要求提取字符串