Python 实现类似sed命令的字符串替换小程序
环境
PyCharm, Windows
背景
sed命令
sed 's/原字符串/新字符串'
单引号中间是s表示替换,原字符串就是要被替换掉的字符串,新字符串就是想要的字符串。
效果
在命令行输入python practice.py i 3333333333 123.txt(程序名称叫practice.py,123.txt是要事先建立的)
如下图:123.txt文件里的字符串i被替换成了33333333,而原来的文件被保存为123.txt.bak文件


代码的实现
1、先读取命令行的几个参数;
2、创建一个新文件,将原来的内容全部复制,并将包含的字符串替换成新的;
3、将原来的文件名改为.bak的格式,将新的文件更名为原来的文件名即可
# # 文件替换程序
import sys, os if len(sys.argv) <= :
print "usage:./practice.py old_text new_text filename" old_text, new_text = sys.argv[], sys.argv[]
filename = sys.argv[] f = file(filename, 'rb')
new_f = file('.%s.bak' % filename, 'wb') # 文件前面加一个点表示隐藏文件 for line in f.xreadlines(): # 把每一行都取出来
new_f.write(line.replace(old_text, new_text)) # 替换文本并写入新文件中 f.close()
new_f.close() # 一定要记得关文件 os.rename(filename, '%s.bak' % filename) # 没改的
os.rename('.%s.bak' % filename, filename) # 改过的
源代码下载:https://github.com/huahua462/raplace-string
个人博客地址:https://huahua462.github.io/
Python 实现类似sed命令的字符串替换小程序的更多相关文章
- 使用 sed 命令查找和替换文件中的字符串的 16 个示例
当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...
- 用Python快速实现一个垃圾分类APP|附带微信小程序
最近北京开始实行垃圾分类,导致大家对垃圾的研究热度突然涨高,垃圾们也纷纷表示从来没有获得过这么高的关注度.其实,上海市去年已经开始实行,网上已经有不少成熟的教程了,像什么<垃圾分类从入门到精通& ...
- 【babel+小程序】记“编写babel插件”与“通过语法解析替换小程序路由表”的经历
话不多说先上图,简要说明一下干了些什么事.图可能太模糊,可以点svg看看 背景 最近公司开展了小程序的业务,派我去负责这一块的业务,其中需要处理的一个问题是接入我们web开发的传统架构--模块化开发. ...
- Windows学习总结(11)——Windows批处理命令编写代码及小程序简介
批处理(Batch)也称为批处理脚本.顾名思义,就是对某对象进行批量的处理.DOS批处理是基于DOS命令,用来自动地批量地执行DOS命令以实现特定操作的脚本.批处理是一种简化的脚本语言,它应用于DOS ...
- 通过python的socket库实现简易即时通讯小程序
前言 最近学习了一下有关tcp协议和socket有关的知识,看到许多socket实战都喜欢教如何做一个聊天程序,于是想着试试能不能不看教程自己写一个.当然我没太多时间做一个像qq一样的ui界面,所以做 ...
- python开发_tkinter_自己做的猜数字小程序
读到这篇文章[python 3.3下结合tkinter做的猜数字程序]的时候,就复制了代码,在自己机器上面跑了一下 源程序存在一个缺陷: 即当用户答对了以后,用户再点击'猜'按钮,最上面的提示标签还会 ...
- 07 python学习笔记-写一个清理日志的小程序(七)
#删掉三天前的日志 #1.获取到所有的日志文件, os.walk #2.获取文件时间 android 2019-09-27 log,并转成时间戳 #3.获取3天前的时间 time.time() - 6 ...
- Python 一个抓取糗百的段子的小程序
import requests import re #糗事百科爬虫类 class QSBK: #初始化方法,定义一些变量 def __init__(self): self.headers={ &quo ...
- 用命令行cmd 编译小程序
操作命令: C:\Users\Administrator>"C:\Program Files (x86)\MSBuild\12.0\Bin\csc.exe" /out:D: ...
随机推荐
- 使用idea上传项目到码云
首先,基本流程是这样的: 1.在码云生成SSH公钥 2.在码云创建项目 3.克隆项目到本地 4.在本地创建项目 5.搭建本地仓库,关联远程仓库 ...
- [BZOJ4695]最假女选手:segment tree beats!
分析 segment tree beats!模板题. 看了gxz的博客突然发现自己写的mxbt和mnbt两个标记没用诶. 代码 #include <bits/stdc++.h> #defi ...
- sql语句的使用经验 postgresql
查找指定字段为空或不为空 查询数据库中指定字段为空的行数据: select * from tablename where columnName = ''; 字符串类型可以用 '' ,也可以用Null ...
- 4.Python IDLE使用方法详解(包含常用快捷键)
在安装 Python 后,会自动安装一个 IDLE,它是一个 Python Shell (可以在打开的 IDLE 窗口的标题栏上看到),程序开发人员可以利用 Python Shell 与 Python ...
- legend3---阿里云如何多个域名指向同一个网站
legend3---阿里云如何多个域名指向同一个网站 一.总结 一句话总结: 先寻求资料及文档,没有找到的话自己摸索一下就好 结论:多个域名都需要备案 二.阿里云如何多个域名指向同一个网站 当前情况 ...
- 洛谷P4095新背包问题
传送 这道题最最暴力的方法就是对于每一个询问都跑一边多重背包问题,但显然q不会那么友好的让我们用暴力过掉这道题. 考虑优化.我们可以先把裸的多重背包搞成二进制优化后的多重背包.但是复杂度依然无法接受. ...
- 十五、RF操作时间控件
由于日期控件经常用的是readonly属性,这个属性意思是此控件为可读,明白点就是只让你看,不让你动. 解决方法就是:用js去掉这个属性,就可写了,就能输入了 导入库:DateTime #方式一 op ...
- Jvm组成以及调优
Jvm的内存由三部分组成Eden,S0,S1,Old以及Metaspace(JDK1.8之前的Perm区)五部分组成: (图片摘自VisualVM的Visual GC插件) 抽象为三代:新生代(Ede ...
- html不点击提交,自动post
<!DOCTYPE html> <html> <form id="form1" name="form1" method=" ...
- SHELL输出颜色和闪烁控制
Shell 颜色和闪烁控制 在Shell下有时候需要定制输出,比如给输出加上颜色,或者显示高亮,或者添加闪烁等. 然后这些颜色代码或者控制码等相对不好记住.这个时候我们可以考虑把最终想要的结果制定成对 ...