本文实例讲述了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程序设计有所帮助。
新闻热点
疑难解答