python 文件 查找替换
2017-11-28 11:17:00 weixin_34405332 阅读数 8

[root@localhost ~]# less txt

123 345 678

accdfesdfdsf

[root@localhost ~]# less tihuan.py

#!/usr/bin/env python

import re

wenjian = open('txt','r+')

a = wenjian.read()

wenjian.seek(0,0)


f = (r'123')

b =re.findall(f,a)

if b != []:

   wenjian.write(a.replace(f,'zzh'))

   wenjian.close()


[root@localhost ~]# ./tihuan.py

[root@localhost ~]# less txt

zzh 345 678

accdfesdfdsf



本文转自 freeterman 51CTO博客,原文链接:http://blog.51cto.com/myunix/1269783,如需转载请自行联系原作者
2010-02-03 21:20:00 embeddedstar 阅读数 329

>>> import string
>>> s='adbecf'
>>> tt=string.maketrans("abc","ABC")
>>> s.translate(tt,"")
'AdBeCf'
>>>

 

s.translate(tt,"") 后面的那个空字符创就是你要删除的字符,比如要删除换行就是s.translate(tt,"/n")

2013-08-11 10:53:51 weixin_33785972 阅读数 1

[root@localhost ~]# less txt

123 345 678

accdfesdfdsf

[root@localhost ~]# less tihuan.py

#!/usr/bin/env python

import re

wenjian = open('txt','r+')

a = wenjian.read()

wenjian.seek(0,0)


f = (r'123')

b =re.findall(f,a)

if b != []:

   wenjian.write(a.replace(f,'zzh'))

   wenjian.close()


[root@localhost ~]# ./tihuan.py

[root@localhost ~]# less txt

zzh 345 678

accdfesdfdsf


转载于:https://blog.51cto.com/myunix/1269783

2013-09-02 23:06:34 weixin_34407348 阅读数 4

     python查找替换(三)

目的:

  本脚本是对<python查找替换(二)>的改进,针地多项目多应用

进行配置文件更新替换.

目录:

E:\doc\doc\tomcat_aaa\webapp\111

E:\doc\doc\tomcat_aaa\webapp\222

E:\doc\doc\tomcat_aaa\webapp\333

E:\doc\doc\tomcat_bbb\webapp\444

E:\doc\doc\tomcat_bbb\webapp\555

E:\doc\doc\tomcat_bbb\webapp\666

E:\doc\doc\tomcat_ccc\webapp\777

E:\doc\doc\tomcat_ccc\webapp\888

E:\doc\doc\tomcat_ccc\webapp\999

文件数:各三个,分别是1.properties,2.properties,3.properties,

用于替换的值保存在mysql数据中:aaa_config bbb_config ccc_config

代码实现:

#encoding: UTF-8

import  time,MySQLdb

import fnmatch

import re,os,sys

reload(sys)

sys.setdefaultencoding('utf-8')

#从数据库获得目标key/value

conn=MySQLdb.connect(host="192.168.1.23",user="myuser",passwd="123",db="manage",charset="utf8")

cursor = conn.cursor()


##切换到配置文件目录

curdir = r'E:\doc\doc\tomcat_'

proj = sys.argv[1]

sub_proj = sys.argv[2]

curdir=curdir + proj                   #对应项目的tomcat根目录

dirarray = [curdir,"webapp",sub_proj]        #合并出子项目目录

source = '\\'.join(dirarray)

os.chdir(source)                      #切换子项目配置文件目录为当前目录


#根据项目选数据表配置文件表

if re.search("aaa", proj):

   sql="select key123,qc from aaa_config"

   cursor.execute(sql)

elif proj == "bbb" or sub_proj == "111":

   sql="select key123,qc from bbb_config"

   cursor.execute(sql)

else:

   sql="select key123,qc from "  + proj + "_config"

   cursor.execute(sql)


#列出当目录下的所有配置文件

filelist = []

for file in os.listdir(source):

   if fnmatch.fnmatch(file, '*.properties'):

       filelist.append(file)

#逐个查找从当前目录下的各个配置文件key列表,并修改之

for thisfile in filelist:

   fd=open(thisfile)

   devconfigfile = fd.read()

   print "First For,file is %s" %(thisfile)

   p = re.compile("(.*)=")               #实例化正则表达式

   keylist = p.findall(devconfigfile)        #获得原始key列表

   fd.close

   #从数据库中找到当前项目的所有key/value,并对当前配置文件进行value替换

   for filekey in keylist:

       filekey = filekey.replace(" ","")    #去掉空格

       print "   Second For,filekey is %s" %(filekey)

       cursor.execute(sql)              #以重新执行sql代替恢复游标

       for row in cursor.fetchall():       #从sql结果集中逐行取key/value对

          dbkey=row[0]

          dbvalue=row[1]

          if filekey == dbkey:

              s=[filekey,dbvalue]        #合并出新key/value值

              newvalue='='.join(s)

              #print "---------------- %s file ------------------" %(thisfile)

              print "       Third For,filekey and dbkey is %s  %s"  %(filekey,dbkey)

              print "       newvalue is %s" %(newvalue)

              #替换新值

              devconfigfile, number = re.subn(filekey + ".*" + "=" + ".*",newvalue,devconfigfile)

   fd=open(thisfile,'w')

   fd.write(devconfigfile)

   fd.close

   fd = open(thisfile)

   result = fd.read()

   #print result

   fd.close



转载于:https://blog.51cto.com/cwind/1287598

2013-08-30 23:08:55 weixin_33913377 阅读数 4

           python查找替换

场景:

 系统有些配置文件,在不同环境下需要对部份配置项进行查找替换,如下的工作就是要找到这些需要改变其值的关键字(即key/value中的key).

假设有文件:I:\python\1.txt,内容如下:

path=/home/pos.propertes
user=ds_user
passwd=passwd_db

现在需要找到等号=前面的关键字,实现代码如下:

代码实现:

# encoding: UTF-8
import re
import os
fd=open(r'I:\python\1.txt')
result = fd.read()
fd.close
#print result
#print "-------- end -----------"
p = re.compile("(.*)=")
print p.findall(result)


#-------   结果 --------

['path', 'user', 'passwd']



转载于:https://blog.51cto.com/cwind/1285973

没有更多推荐了,返回首页