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程序设计有所帮助。

相关文章

  • 给numpy.array增加维度的超简单方法

    给numpy.array增加维度的超简单方法

    这篇文章主要介绍了给numpy.array增加维度的超简单方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Python编写电话薄实现增删改查功能

    Python编写电话薄实现增删改查功能

    这篇文章主要为大家详细介绍了Python编写电话薄实现增删改查功能的相关资料,感兴趣的朋友可以参考一下
    2016-05-05
  • Sanic框架配置操作分析

    Sanic框架配置操作分析

    这篇文章主要介绍了Sanic框架配置操作,简单分析了Sanic框架中常见的加载配置使用方法,并简单说明了内置配置的预定义变量与对应功能,需要的朋友可以参考下
    2018-07-07
  • 详解Python进行数据相关性分析的三种方式

    详解Python进行数据相关性分析的三种方式

    相关系数量化数据集的变量或特征之间的关联。这些统计数据对科学和技术非常重要,Python 有很好的工具可以用来计算它们。SciPy、NumPy 和Pandas相关方法以及数据可视化功能,感兴趣的可以了解一下
    2022-04-04
  • Django ORM 查询管理器源码解析

    Django ORM 查询管理器源码解析

    这篇文章主要介绍了Django ORM 查询管理器源码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 跟老齐学Python之通过Python连接数据库

    跟老齐学Python之通过Python连接数据库

    现在在做python的时候需要用到数据库,于是自己重新整理了一下数据库的知识,并且熟悉了python中MysqlDB模块的功能和函数等接口,现在系统地来总结一下吧
    2014-10-10
  • 基于pygame实现童年掌机打砖块游戏

    基于pygame实现童年掌机打砖块游戏

    这篇文章主要为大家详细介绍了基于pygame实现童年掌机打砖块游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Python导入父文件夹中模块并读取当前文件夹内的资源

    Python导入父文件夹中模块并读取当前文件夹内的资源

    这篇文章主要给大家介绍了关于Python导入父文件夹中模块并读取当前文件夹内资源的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • python3实现点餐系统

    python3实现点餐系统

    这篇文章主要为大家详细介绍了python3实现点餐系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • YOLOv5车牌识别实战教程(六)性能优化与部署

    YOLOv5车牌识别实战教程(六)性能优化与部署

    这篇文章主要介绍了YOLOv5车牌识别实战教程(六)性能优化与部署,在这个教程中,我们将一步步教你如何使用YOLOv5进行车牌识别,帮助你快速掌握YOLOv5车牌识别技能,需要的朋友可以参考下
    2023-04-04

最新评论