修改文件中指定的所有值

#coding:utf-8

import re
import hashlib
import sys
import random
def read(Name):
        f=open(Name,'r')
        alllines=f.readlines()
        f.close()
        return alllines
def md5_32(cstr):
        m = hashlib.md5(cstr).hexdigest()
        return m.lower()
def md5_16(cstr):
    m = hashlib.md5(cstr).hexdigest()[8:-8]
    return m.lower()
def rand():
        str = ""
        for i in range(6):
                ch = chr(random.randrange(ord('0'), ord('9') + 1))
                str += ch
        return md5_32(str)
def randstr():
        str = ""
        for i in range(6):
                ch = chr(random.randrange(ord('0'), ord('9') + 1))
                str += ch
        return str
def write(Name,alllines,str1,str2,choose):
        choose = int(choose)
        if choose ==1:
                str2=str2
        elif choose == 2:
                str2 =md5_32(str2)
        elif choose ==3:
                str2 =md5_16(str2)
        elif choose ==4:
                str2 = rand()
        elif choose ==5:
                str2=randstr()
        else:
                str2=str2
        print "修改前:"+str1+"---》修改后"+":"+str2
        f=open(Name,'w+')
        count =0
        for eachline in alllines:
                a=re.sub(str1,str2,eachline)
                f.writelines(a)
                if a!=eachline:
                        count+=1
        if count ==0:
                print "不存在需要修改的字符串或修改值相同!"
        else:
                print "成功替换"+str(count)+"次!"
        f.close()
if __name__ == "__main__":
        Name ="sqlgunnews.sql" #raw_input("请输入sql文件名:")  #需要修改的sql文件名
        str1 ="96e79218965eb72c92a549dd5a330112" #raw_input("请输入要改的字符串:") #需要查找替换的字符串
        str2 = "123456" #raw_input("请输入修改后的字符串:") #修改后的字符串
        choose =2 #raw_input("请选择修改后存储方式:1:明文存储,2:md5加密存储,3:md5_16加密,4:随机六位数字Md5,5:随机6位明文\n") #选择修改后存储方式:1:明文存储,2:md5加密存储,3:md5_16加密,4:随机六位数字Md5
        alllines = read(Name)
        write(Name,alllines,str1,str2,choose)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值