用python比较两个文本

# -*- coding: utf-8 -*-
#!/usr/bin/python

import difflib 

def string_similar(s1, s2):
    return difflib.SequenceMatcher(None, s1, s2).quick_ratio()

# 打开文件

fo = open("aa.txt",encoding='UTF8')
f2 = open("cc.txt",encoding='UTF8')
print("文件名为: ", fo.name)

k1 = fo.readlines()
k2 = f2.readlines()

m = ' '
for line in k1:
    #print(line.split()[0])
    m = m + ' ' + line.split()[0]
n = ' '
for line in k2:
     n = n + ' ' + line.split()[0] 

print(m)
print(n)     

d = difflib.Differ()
diff = d.compare(m.split(),n.split())     
    

with open('station.txt', 'w') as f3:
    f3.write('\n'.join(list(diff)))
    f3.write(m)
    f3.write(n)
f3.close()    
#print ('\n'.join(list(diff)))
def change(a):
    du = int(float(a))
    tmp = (float(a)-du)*10000
    fen = int(tmp/100)
    miao = int(tmp-fen*100)
    a = du + fen/60.0 + miao/3600.0
    a = round(a,4)
    return str(a)

print(change(110.2202))
with open('parameters1.txt', 'w') as f4:
    for line2 in k2:                          #依次读取每行  
        line2 = line2.strip()                 #去掉每行头尾空白  
        p = line2.split()            
        for line1 in k1:
            q = line1.split()                
            if p[0]==q[0]:  
                flag = 0
                p[3] = change(p[3])
                p[4] = change(p[4])
                if len(p) != len(q):
                    f4.write('\n!!!!!!!!!!!!!!!!参数个数不同\n')
                    f4.write(' '.join(p))
                    f4.write('\n')
                    f4.write(' '.join(q))
                else:  
                    
                    for i in range(len(p)): 
                        #if p[i-1] != q[i-1] :
                        if string_similar(p[i-1], q[i-1]) < 0.4:
                            flag = 1
                    if flag == 1:        
                        f4.write('\n!!!!!!!!!!!!!!!!\n')
                        f4.write(' '.join(p))
                        f4.write('\n')
                        f4.write(' '.join(q))
f4.close()                            
            #for i in p:
                 
        
                                   
   # print("读取的数据为: %s" % (len(m)))
 
# 关闭文件
fo.close()
f2.close()


学着用了difflib、文本的读取写入

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值