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

 更新时间:2018年03月19日 08:52:13   作者:快递小可  
这篇文章主要介绍了Python实现替换文件中指定内容的方法,涉及Python文件读写、字符串替换等相关操作技巧,需要的朋友可以参考下

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

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

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

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

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

song@ubuntu:~$ more hello.txt
Hello python
Hello world
python Hello
world Hello
song@ubuntu:~$ python file_replace.py Hello love hello.txt --bak
usage:./file_replace.py old_text new_text filename --bak
song@ubuntu:~$ ls
Desktop Documents  file_replace.py Music systemExit.py
diff1.txt Downloads  hello.txt Pictures Templates
diff.txt examples.desktop hello.txt.bak Public Videos
song@ubuntu:~$ more hello.txt
love python
love world
python love
world love
song@ubuntu:~$ more hello.txt.bak
Hello python
Hello world
python Hello
world Hello
song@ubuntu:~$

更多Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

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

相关文章

  • 自学python的建议和周期预算

    自学python的建议和周期预算

    在本篇文章中小编给大家分享了关于自学python的建议和周期预算,有兴趣的朋友们可以学习参考下。
    2019-01-01
  • 可能是最全面的 Python 字符串拼接总结【收藏】

    可能是最全面的 Python 字符串拼接总结【收藏】

    在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅,需要的朋友可以参考下
    2018-07-07
  • 详解Django中CBV(Class Base Views)模型源码分析

    详解Django中CBV(Class Base Views)模型源码分析

    这篇文章主要介绍了详解Django中CBV(Class Base Views)模型源码分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • PyCharm安装库numpy失败问题的详细解决方法

    PyCharm安装库numpy失败问题的详细解决方法

    今天使用pycharm编译python程序时,由于要调用numpy包,但又未曾安装numpy,于是就根据pycharm的提示进行安装,最后竟然提示出错,下面这篇文章主要给大家介绍了关于PyCharm安装库numpy失败问题的详细解决方法,需要的朋友可以参考下
    2022-06-06
  • Django 解决model 反向引用中的related_name问题

    Django 解决model 反向引用中的related_name问题

    这篇文章主要介绍了Django 解决model 反向引用中的related_name问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python调用私有属性的方法总结

    python调用私有属性的方法总结

    在本篇文章里小编给大家整理的是一篇关于python调用私有属性的方法总结,对此有需要的朋友们可以学习下。
    2020-07-07
  • 实操Python爬取觅知网素材图片示例

    实操Python爬取觅知网素材图片示例

    大家好,本篇文章介绍的是实操Python爬取觅知网素材图片示例,感兴趣的朋友赶快来看一看吧,对你有用的话记得收藏起来,方便下次浏览
    2021-11-11
  • python利用Opencv实现人脸识别功能

    python利用Opencv实现人脸识别功能

    这篇文章主要为大家详细介绍了python利用Opencv实现人脸识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • python实战之制作表情包游戏

    python实战之制作表情包游戏

    想知道如何制作表情包游戏吗?用Python就可以搞定!本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 2行Python实现给图片加水印效果

    2行Python实现给图片加水印效果

    这篇文章主要给大家介绍了如何通过2行Python实现给图片加水印效果的相关资料,实现的方法主要是利用filestools库,文中还介绍了一行代码如何给图片加水印,需要的朋友可以参考下
    2021-10-10

最新评论