使用fileinput模块进行原地修改文件

本文介绍如何使用Python的fileinput模块实现批量替换文件中符合特定格式的日期字符串为null,具体步骤包括导入模块、定义正则表达式、遍历文件并进行替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


现有一个包含用户信息的文件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()输出行号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值