Python实现替换文件中指定内容的方法
本文实例讲述了Python实现替换文件中指定内容的方法。分享给大家供大家参考,具体如下:
这里使用python编写的程序,实现如下功能:将文件中的指定子串修改为另外的子串
编写的python程序,文件名是file_replace.py,具体代码如下:
#!/usr/bin/envpython #_*_coding:utf-8_*_ importsys,os iflen(sys.argv)<4orlen(sys.argv)>5: sys.exit('Thereneedsfourorfiveparameters') eliflen(sys.argv)==4: print'usage:./file_replace.pyold_textnew_textfilename' else: print'usage:./file_replace.pyold_textnew_textfilename--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')#文件名以.开头的文件是隐藏文件 forlineinf.xreadlines():#f.xreadlines()返回一个文件迭代器,每次只从文件(硬盘)中读一行 new_file.write(line.replace(old_text,new_text)) f.close() new_file.close() if'--bak'insys.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:~$morehello.txt Hellopython Helloworld pythonHello worldHello song@ubuntu:~$pythonfile_replace.pyHellolovehello.txt--bak usage:./file_replace.pyold_textnew_textfilename--bak song@ubuntu:~$ls DesktopDocumentsfile_replace.pyMusicsystemExit.py diff1.txtDownloadshello.txtPicturesTemplates diff.txtexamples.desktophello.txt.bakPublicVideos song@ubuntu:~$morehello.txt lovepython loveworld pythonlove worldlove song@ubuntu:~$morehello.txt.bak Hellopython Helloworld pythonHello worldHello song@ubuntu:~$
更多Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。