首页 > 编程 > Python > 正文

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

2020-01-04 15:37:08
字体:
来源:转载
供稿:网友

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

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

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

#!/usr/bin/env python#_*_ coding:utf-8 _*_import sys,osif 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) #changedelse: os.rename(file_name,'wahaha.txt')#此处也可以将原文件删除,以便下一语句能够正常执行 os.rename('.%s.bak' % file_name,file_name)

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

song@ubuntu:~$ more hello.txtHello pythonHello worldpython Helloworld Hellosong@ubuntu:~$ python file_replace.py Hello love hello.txt --bakusage:./file_replace.py old_text new_text filename --baksong@ubuntu:~$ lsDesktop Documents  file_replace.py Music systemExit.pydiff1.txt Downloads  hello.txt Pictures Templatesdiff.txt examples.desktop hello.txt.bak Public Videossong@ubuntu:~$ more hello.txtlove pythonlove worldpython loveworld lovesong@ubuntu:~$ more hello.txt.bakHello pythonHello worldpython Helloworld Hellosong@ubuntu:~$

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


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表