[root@PythonPC ~]# cat passwd
 root:x:::root:/root:/bin/bash
 bin:x:::bin:/bin:/sbin/nologin
 daemon:x:::daemon:/sbin:/sbin/nologin
 adm:x:::adm:/var/adm:/sbin/nologin
 ::lp:/var/spool/lpd:/sbin/nologin
 ::sync:/sbin:/bin/sync
 shutdown:x:::shutdown:/sbin:/sbin/shutdown
 halt:x:::halt:/sbin:/sbin/halt
 [root@PythonPC ~]#
 [root@PythonPC ~]# python .py
 [root@PythonPC ~]#
 [root@PythonPC ~]# cat passwd
 root:x:::root:/root:/bin/bash
 bin:x:::bin:/bin:/sbin/nologin
 daemon:x:::daemon:/sbin:/sbin/nologin
 adm:x:::adm:/var/adm:/sbin/nologin
 ::lp:/var/spool/lpd:/sbin/nologin
 ::sync:/sbin:/bin/sync
 shutdown:x:::shutdown:/sbin:/sbin/shutdown
 halt:x:::halt:/sbin:/sbin/halt
 [root@PythonPC ~]#
 [root@PythonPC ~]# python .py   passwd.new
 [root@PythonPC ~]#
 [root@PythonPC ~]# cat passwd
 root:x:::root:/root:/bin/bash
 bin:x:::bin:/bin:/sbin/nologin
 daemon:x:::daemon:/sbin:/sbin/nologin
 adm:x:::adm:/var/adm:/sbin/nologin
 ::lp:/var/spool/lpd:/sbin/nologin
 ::sync:/sbin:/bin/sync
 shutdown:x:::shutdown:/sbin:/sbin/shutdown
 halt:x:::halt:/sbin:/sbin/halt
 [root@PythonPC ~]#
 [root@PythonPC ~]# cat passwd.new
 root:x:::root:/root:/bin/bash
 bin:x:::bin:/bin:/sbin/nologin
 daemon:x:::daemon:/sbin:/sbin/nologin
 adm:x:::adm:/var/adm:/sbin/nologin
 ::lp:/var/spool/lpd:/sbin/nologin
 ::sync:/sbin:/bin/sync
 shutdown:x:::shutdown:/sbin:/sbin/shutdown
 halt:x:::halt:/sbin:/sbin/halt
 [root@PythonPC ~]#
 [root@PythonPC ~]# python .py passwd o
 参数错误:python .py 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]
 [root@PythonPC ~]# python .py passw
 文件不存在
 [root@PythonPC ~]# 

脚本代码如下:

 #!/usr/bin/python
 # -*- coding=UTF-8 -*-

 import sys
 import os

 len_argv=len(sys.argv)
 #print '传参数量',len_argv-1

 if   len_argv <  4:
     print '参数错误:python '+sys.argv[0]+' 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]'

 elif len_argv >  5:
     print '参数错误:python '+sys.argv[0]+' 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]'

 else:
     if not os.path.isfile(sys.argv[1]):
         print '文件不存在'
         sys.exit()
     s_file  = file(sys.argv[1],'r+')
     old_str = sys.argv[2]
     new_str = sys.argv[3]
     d_file  = file(sys.argv[1]+'.tmp','w')
     for line in s_file.readlines():
         d_file.writelines(line.replace(old_str,new_str))
     s_file.close()
     d_file.close()

     if len_argv == 4:
         os.rename(sys.argv[1]+'.tmp',sys.argv[1])
     else:
         os.rename(sys.argv[1]+'.tmp',sys.argv[4])

python 小程序,替换文件中的字符串的更多相关文章

  1. 使用 sed 命令查找和替换文件中的字符串的 16 个示例

    当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

  2. linux sed 批量替换文件中的字符串或符号

    sed -i :直接修改读取的文件内容,而不是输出到终端.   sed -i 就是直接对文本文件进行操作的   替换每行第一次出现的字符串 sed -i 's/查找的字符串/替换的字符串/' 文件   ...

  3. 软件工程-构建之法 WordCount小程序 统计文件中字符串个数,单词个数,词频,行数

    一.前言 在之前写过一个词频统计的C语言课设,别人说你一个大三的怎么写C语言课程,我只想说我是先学习VB,VB是我编程语言的开始,然后接触到C语言及C++:再后来我是学习C++,然后反过来学习C语言, ...

  4. 微信小程序wxml文件中调用自定义函数

    想在微信小程序的wxml文件里自如的像vue那样调用自定义的方法,发现并不成功,得利用WXS脚本语言. WXS脚本语言是 WeiXin Script 脚本语言的简称,是JavaScript.JSON. ...

  5. 微信小程序 wxml 文件中如何让多余文本省略号显示?

    废话不多说,之前写小程序碰到了一个问题,如何在 wxml 页面中截取数据? 1.wxs   取数据想必大家都会,不就是 substring 吗?但是这种方法在 wxml 页面中是无效的. 那还有 cs ...

  6. shell 脚本替换文件中某个字符串

    1.将当前目录下包含jack串的文件中,jack字符串替换为tom sed -i "s/jack/tom/g" `grep "jack" -rl ./` 2.将 ...

  7. grep和sed替换文件中的字符串

    sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...

  8. grep和sed替换文件中的字符串【转】

    sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...

  9. shell 脚本sed替换文件中某个字符串

    有些大文件,特别的大.有几百兆,甚至更大. 用文本编辑器打开十分的费劲,电脑都卡死了. 想替换其中的字符串,很麻烦. 这个时候有了shell,简直强大到爆炸! # du -h user.sql 304 ...

  10. Bat 替换文件中的字符串

    echo off setlocal enabledelayedexpansion set "file=Config\__Config\server_config_common.xml&quo ...

随机推荐

  1. Red Hat 5.8 CentOS 6.5 共用 输入法

    pick up from http://jingyan.baidu.com/article/20b68a885a3607796cec622c.html

  2. FOJ有奖月赛-2016年8月(daxia专场之过四题方有奖)

    http://acm.fzu.edu.cn/contest/list.php?cid=152 主要是a题, lucas定理, 就这一版能过..  记录一下代码, 另外两个最短路  一个模拟,没什么记录 ...

  3. HashMap的实现原理--链表散列

    1.    HashMap概述 HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变. ...

  4. 对delphi中的数据敏感控件的一点探索

    一直对delphi数据敏感控件很好奇,感觉很神奇.只要简单设置一下,就显示和编辑数据,不用写一行代码. 如果不用数据敏感控件,编辑一个表字段数据并保存,我相信应用如下代码. Table1.edit, ...

  5. 一本通1609【例 4】Cats Transport

    1609:[例 4]Cats Transport 时间限制: 1000 ms         内存限制: 524288 KB sol:非常偷懒的截图了事 注意:只能猫等人,不能人等猫 对于每只猫,我们 ...

  6. ubuntu 安装 postgresql

    安装环境: Ubuntu 10.04-desktop-i386 PostgreSQL 8.4 1. 安装PostgreSQL 输入如下命令 sudo apt-get install postgresq ...

  7. AISing Programming Contest 2019 翻车记

    A:签到. #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> ...

  8. JavaScript限制前端页面用户表单输入

    onkeyup事件 onkeyup 事件会在键盘按键被松开时发生. 内容来源:自成e家 1.只能输入数字 <input onkeyup = "value=value.replace(/ ...

  9. Django实现websocket完成实时通讯,聊天室,在线客服等

    一 什么是Websocket WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在WebS ...

  10. day30 __new__ 以及单例模式

    __new__ # __new__ # object.__new__() class A : def __init__(self): self.x = 1 print("init执行啦&qu ...