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 相关文章推荐
Django集成百度富文本编辑器uEditor攻略
Jul 04 Python
Python中的推导式使用详解
Jun 03 Python
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
python基础练习之几个简单的游戏
Nov 10 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
Python IDLE清空窗口的实例
Jun 25 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
Python使用Pandas库常见操作详解
Jan 16 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
Django使用echarts进行可视化展示的实践
Jun 10 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
海贼王:最美的悬赏令!
2020/03/02 日漫
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
js面向对象的写法
2016/02/19 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
python取均匀不重复的随机数方式
2019/11/27 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
《童年》教学反思
2014/02/18 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
土地转让协议书
2014/04/15 职场文书
应用心理学专业求职信
2014/08/04 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python