为了感谢各位同志一直以来的分享和帮助,在这里我提供python正则匹配的解决方案,先复制到txt删掉分隔行,然后运行这个脚本就可以了
import re
import os
import openpyxl
input= r'E:\Alark\Desktop'
os.chdir(input)
file='桌面.txt'
output="结果导出.xlsx"
if output in set(os.listdir()):
os.remove(output)
f=open(file, 'r',encoding='utf-8')
#with open() as f:
mybook = openpyxl.Workbook()
mysheet=mybook["Sheet"]
j=0
for line in f:
j=j+1
#f.readlines()
print(line)
line = re.sub('\|', '', line)
r = re.compile("(-)?(.)?(\w)+(.)?(\w)*", re.S)
result = re.finditer(r, line)
# result=re.match(r, line,flags=0)
# result=re.findall(r, line, flags=0)
if result == None:
continue
i=0
for p in result:
i=i+1
tmp = p.group(0)
mysheet.cell(row=j, column=i, value=tmp)
mybook.save(output)
f.close()