现有一个包含用户信息的文件userinfo,内容格式如下:
insert into USERINFO (ID, USERNAME, PWDHASH, USEALIAS, ALIAS, REALNAME, INUSE, F_BRANCH_ID, MOBILEPHONE, TELEPHONE, EMAIL, LICENSECODE,
ADDRESS, POSTCODE, GENDER, F_CUSTOMER_ID, ISCORE, ACTIVETIME, EXPIRETIME, IP)
values (248, 'police', '94216d6c554585824505a697b354b2b1', null, '', 'realname', 1, 223, 'mobile', 'phone', '1@163.com', '', 'address', '', 'M', 163, null, to_date('11-04-2013',
'dd-mm-yyyy'), to_date('19-04-2013', 'dd-mm-yyyy'), '192.168.0.0');
想要将类似to_date('19-04-2013', 'dd-mm-yyyy')的内容替换为null。
使用fileinput模块进行原地修改文件:
import re,fileinput p ='to_date\(.*?\)' for i in fileinput.input([r'D:\userinfo.txt',],inplace=1): #标识原地操作,则print的内容会输出到原文件中 if re.search(p,i): t = re.findall(p,i) # 找到匹配的字符串列表(每个行可能有多个满足条件的字符串) for v in t: i=i.replace(v,'null') print fileinput.lineno(),'>',i # fileinput.lineno()输出行号