[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. fetch 代替 XMLHttpRequest (json-server 模拟后台接口)

    一.fetch 是 XMLHttpRequest 的替代方案.说白了就是除了 ajax 获取后台数据之外也可以用fetch 来获取. 二.fetch 的支持性还不是很好.挂载于BOM中可以通过浏览器直 ...

  2. [微软官网]windows server 内存限制

    Memory Limits for Windows and Windows Server Releases https://docs.microsoft.com/zh-cn/windows/deskt ...

  3. 【Java】 内部类

    [Java]内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 使用内部类的的原因主要有三点: 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据. 内部类可以对同一个包中的 ...

  4. 构建squid代理服务器

    基本概念 本文使用squid代理服务 软件介绍:百度百科 作为应用层的代理服务软件,Squid主要提供缓存加速.应用层过滤控制的功能: 工作机制:缓存网页对象,减少重复请求(HTTP代理的缓存加速对象 ...

  5. BZOJ4650 NOI2016优秀的拆分(后缀数组)

    显然只要求出以每个位置开始的AA串数量就可以了,将其和反串同位置的结果乘一下,加起来就是答案.考虑对每种长度的字符串计数.若当前考虑的A串长度为x,我们每隔x个字符设一个关键点,求出相邻两关键点的后缀 ...

  6. M - Help Hanzo LightOJ - 1197 (大区间求素数)

    题意: 求[a,b]之间的素数的个数 数很大...数组开不起 所以要想到转化 因为小于等于b的合数的最小质因子 一定小于等于sqrt(b),所以只需要求出来[0,sqrt(b)]的素数  然后取倍数删 ...

  7. CF1073E Segment Sum 解题报告

    CF1073E Segment Sum 题意翻译 给定\(K,L,R\),求\(L~R\)之间最多不包含超过\(K\)个数码的数的和. \(K\le 10,L,R\le 10^{18}\) 数位dp ...

  8. Python数据类型(数字和字符串)

    1.1 Number(数字) Python可以处理任意大的整数,包括负整数. 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的.,比如,\(1.23\ti ...

  9. Bash: about .bashrc, .bash_profile, .profile, /etc/profile, etc/bash.bashrc and others

    Some interesting excerpts from the bash manpage:When bash is invoked as an interactive login shell, ...

  10. Windows下修改Tomcat黑窗口标题

    在Tomcat的bin目录下,新建文件setenv.bat. 在文件内输入: set TITLE=MYTomcat-%date% %time%[%cd%] 可以把MYTomcat修改为自己定义的名字. ...