首页 > 编程 > Python > 正文

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

2019-11-25 15:04:23
字体:
来源:转载
供稿:网友

本文实例讲述了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字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表