发布网友 发布时间:2022-04-18 21:19
共2个回答
懂视网 时间:2022-04-19 01:40
filecmp定义了两个函数,用于方便地比较文件与文件夹:热心网友 时间:2022-04-18 22:48
先把文件能正常解析成结构化数据再说,我建议用正则表达式。把每个结构匹配出来,然后做后继工作。追问文件b就是正则表达的结果,文件a是函数匹配的结果!其实上述的问题用excel函数可以很轻松解决!但是我希望通过Python脚本时间!追答写了代码
aMap={} #map to quick find match
fs=[] #collect field
data=open("a.txt","r").read()
dlen=len(data)
idx=0
cnt=3
i=data.find("create",idx,dlen)
while i!=-1:
f=data[idx:i+6]
fs.append(f.strip())
if len(fs)==3:
aMap[fs[0]]=[fs[1],fs[2]]
fs=[]
idx=i+7
i=data.find("create",idx,dlen)
blines=open("b.txt","r").readlines()
blen=len(blines)
cur=blen-1 #cur line is the current line to process cur will from blen-1 to 0
while cur>=0: #from bottom to top
line=blines[cur]
if line.startswith("sap lag"):
if aMap.has_key(line.strip()): #if we has the field in a file
b,c=aMap[line.strip()] #
blines.insert(cur+1,"\t"+b+"\n")
blines.insert(cur+2,"\t"+c+"\n")
cur-=1
print blines
open("c.txt","w").writelines(blines)
生成的文件如下,注意第二行第三行:
sap lag-1:512.1732 create
subscriber-interface "ZX-112.12.3.81/28" create 《----
group-interface "zx3-lag-5" create 《-----
下面同原文件