嗨,我有一个以下格式的输入文件。
.....
......
<TABLE COLS="3">
<ROW>
<R>data</R>
<R>data</R>
</ROW>
<ROW>
<R>data</R>
<R>data</R>
<R>data</R>
</ROW>
</TABLE>
<TABLE COLS="4">
<ROW>
<R>data</R>
<R>data</R>
<R>data</R>
<R>data</R>
<R>data</R>
</ROW>
<ROW>
<R>data</R>
<R>data</R>
</ROW>
</TABLE>
.......
.....
.
...
输出文件应为:
....
....
.
..
<table ct="3">
<ent="1">
<ent="2">
<ent="3">
<row>
<rvn ="1">data</rvn>
<rvn ="2">data</rvn>
</row>
<row>
<rvn ="1">data</rvn>
<rvn ="2">data</rvn>
<rvn ="3">data</rvn>
</row>
</table>
<table ct="4">
<ent="1">
<ent="2">
<ent="3">
<ent="4">
<row>
<rvn ="1">data</rvn>
<rvn ="2">data</rvn>
<rvn ="3">data</rvn>
<rvn ="4">data</rvn>
<rvn ="5">data</rvn>
</row>
<row>
<rvn ="1">data</rvn>
<rvn ="2">data</rvn>
</row>
</table>
...
...
...
我已经编写了以下代码:当我运行此代码时,表 col 值将被最后一个表 col 值替换。而且我在增加<rvn>
价值方面也面临问题。你们中的任何一个都可以帮我解决这个问题。
import re
def tblcnv( st, val ):
Tcolspec = ''
Endval = int(val) + 1
for i in range(1, Endval):
l = str(i)
Tcolspec += "<colspec col='" + l + "' colwidth=''/>\n"
Theader = re.sub(r"(?i)<table.*?>","<table ct='" + val +"'>\n" + Tcolspec + "\n", st)
return Theader
in_data = open("in.txt", "r")
out_data = open("out.txt", "w")
Rdata = in_data.read()
Rval = Rdata.replace("\n", " ")
Rval = re.sub("(?i)(<TABLE.*cols=\"(\d+).*?</TABLE>)", lambda m: tblcnv(m.group(1), m.group(2)), Rval)
out_data.write(Rval)