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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。