一、问题描述
原数据如图:
处理后的数据如图:
去掉没有值的标签,并变成一对一的格式。
二、解决
按行读取文本,将带有"-"的行忽略,其他的写入新的文件。按行读取处理后的数据,使用循环进行切分,组合,再写入新的文件。
代码1:去掉多余行
out = "out.txt"
f = open("annotation.txt", encoding='utf-8')
while True:
line = f.readline()
if line:
if '-' in line:
continue
else:
with open(out, "a") as o:
o.write(line + "\n")
o.close()
print(line)
else:
break
f.close()
这里的写法很憨,每次打开,关闭,速度慢,可以看后面的处理改一改。
代码2:处理文件
import re
f = open("out.txt", encoding='utf-8')
o = open("out2.txt", encoding="utf-8", mode="a")
while True:
line = f.readline()
if line:
line = re.sub('''"''', "", line)
# print(line)
head = line.split("\t")
key = head[0]
for i in range(1, len(head)):
value = head[i]
me = key + ":" + value + "\n"
o.write(me)
# print(head)
else:
break
f.close()
o.close()
三、总结
一些简单的字符串操作,记录下日常。