python替换文件内容_Python实现替换文件中指定内容的方法

本文实例讲述了Python实现替换文件中指定内容的方法。分享给大家供大家参考,具体如下:

这里使用python编写的程序,实现如下功能:将文件中的指定子串 修改为 另外的子串

编写的python程序,文件名是file_replace.py,具体代码如下:

#!/usr/bin/env python

#_*_ coding:utf-8 _*_

import sys,os

if len(sys.argv)<4 or len(sys.argv)>5:

sys.exit('There needs four or five parameters')

elif len(sys.argv)==4:

print 'usage:./file_replace.py old_text new_text filename'

else:

print 'usage:./file_replace.py old_text new_text filename --bak'

old_text,new_text=sys.argv[1],sys.argv[2]

file_name=sys.argv[3]

f=file(file_name,'rb')

new_file=file('.%s.bak' % file_name,'wb')#文件名以.开头的文件是隐藏文件

for line in f.xreadlines():#f.xreadlines()返回一个文件迭代器,每次只从文件(硬盘)中读一行

new_file.write(line.replace(old_text,new_text))

f.close()

new_file.close()

if '--bak' in sys.argv: #'--bak'表示要求对原文件备份

os.rename(file_name,'%s.bak' % file_name) #unchanged

os.rename('.%s.bak' % file_name,file_name) #changed

else:

os.rename(file_name,'wahaha.txt')#此处也可以将原文件删除,以便下一语句能够正常执行

os.rename('.%s.bak' % file_name,file_name)

下面是代码执行的一个例子:

song@ubuntu:~$ more hello.txt

Hello python

Hello world

python Hello

world Hello

song@ubuntu:~$ python file_replace.py Hello love hello.txt --bak

usage:./file_replace.py old_text new_text filename --bak

song@ubuntu:~$ ls

Desktop Documents file_replace.py Music systemExit.py

diff1.txt Downloads hello.txt Pictures Templates

diff.txt examples.desktop hello.txt.bak Public Videos

song@ubuntu:~$ more hello.txt

love python

love world

python love

world love

song@ubuntu:~$ more hello.txt.bak

Hello python

Hello world

python Hello

world Hello

song@ubuntu:~$

更多Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

本文标题: Python实现替换文件中指定内容的方法

本文地址: http://www.cppcns.com/jiaoben/python/222897.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值