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


Posted in Python onMarch 19, 2018

本文实例讲述了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将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
Python中表示字符串的三种方法
Sep 06 Python
python创建文件备份的脚本
Sep 11 Python
Python中Proxypool库的安装与配置
Oct 19 Python
python操作小程序云数据库实现简单的增删改查功能
Jun 06 Python
python进程间通信Queue工作过程详解
Nov 01 Python
Python 中@property的用法详解
Jan 15 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
python实现代码审查自动回复消息
Feb 01 Python
基于PyTorch中view的用法说明
Mar 03 Python
Python基本数据类型之字符串str
Jul 21 Python
python书籍信息爬虫实例
Mar 19 #Python
python中字符串比较使用is、==和cmp()总结
Mar 18 #Python
Python使用zip合并相邻列表项的方法示例
Mar 17 #Python
Python zip()函数用法实例分析
Mar 17 #Python
Python iter()函数用法实例分析
Mar 17 #Python
Python callable()函数用法实例分析
Mar 17 #Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 #Python
You might like
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
python实现二叉查找树实例代码
2018/02/08 Python
python之文件读取一行一行的方法
2018/07/12 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
python 瀑布线指标编写实例
2020/06/03 Python
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
2015年汽车销售工作总结
2015/04/07 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
参加招聘会后的感想
2015/08/10 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python