我一直在努力改进我编写的函数的一些结果,以便从文件中提取列表,但是已经碰壁了。我已经得到了一个值,可能是两个,但相当不一致。就标签和值而言,结果会有所不同(下面的例子)。我认为正则表达式可能是要走的路,但我最多只能使用它。
练习1:
Run Bora Hot Record Casing Record
No. From To Sue fr To
One 4 .3/4 4569 TD 5.5 15 .5 Surface 4569
预期结果=位:4 3/4,来自:4569,收件人:TD,案例:5.5,Wt:15.5
练习2:
Run Bore- Hoke Record Casing Record
No. Bit From To Size Wgt. from
Onel 4.75 4587 4840 5 .5 N/ A Surface
预期结果=位:4.75,来自:4587,至:4840,大小:5.5,Wt:N / A
实例3:
Run Bore-Ho Record Ceng Record
No. From To Sue Wot From
One 4 .3/ 4 4679 TD 5 .1/ 2 15 .5 Surface
预期结果:位:4 3/4,来自:4679,收件人:TD,案例:5 1/2,Wt:15.5
以下代码示例。我不会粘贴图书馆,但你会对我正在做的事情有一个大概的了解。我再次相信这是无效的方式。
def far_m(lab,txt):
txt2 = txt.strip().split(' ')[-1]
pos = -1
if isMatch(lab,txt2):
t1 = txt2.strip().split()[0]
pos = txt.find(t1)
for i,r in enumerate(rtxt):
if far_m('case', r) > -1:
if i >= 2:
rx = far_m('case', r)
j = i-2
rj = rtxt[j]
if len(rj) > rx:
# z = rj[int(rx/2):]
a = rj
a1 = get_start(rj,int(rx*0.7))
a2 = get_start(rj,len(rj))
ap = str(rj)[a1:a2]
x1 = get_start(rj,a1+0.3*fn)
x2 = get_start(rj,x1+0.42*fn)
x3 = get_start(rj,x2+0.5*fn)
x4 = get_start(rj,x3+0.5*fn)
b1 = a[a1:x1].strip()
b2 = a[x1:x2].strip()
b3 = a[x2:x3].strip()
b4 = a[x3:].strip()
if b1 == '' and b2 != '' and b4 != '':
b1 = '7'
found.foundList.append(['size', b1.strip()])
found.foundList.append(['wt', b2.strip()])
found.foundList.append(['to', b3.strip()])
found.foundList.append(['from', b4.strip()])