[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. mysql 和php 保留2位小数

    一般交易中保留的数字的小数位数为2位(即最小单位为 1分钱[0.01元]) 数据库设计中预金钱有关或要求精准度要高的用 decimal(n,m) 表示,n表示保留的数字长度,保留的小数位数,如deci ...

  2. Oracle 的ORION工具简单使用

    1. 下载地址: http://www.oracle.com/technetwork/cn/topics/index-088165-zhs.html 2. linux x64 还有 windows的 ...

  3. Node 表单query

    //#使用nodejs编写动态的web服务器//1:加载需要模块 fs http urlconst fs = require("fs");const http = require( ...

  4. FICO基础知识(二)

    FI中的maser data: COA (Chart Of Account)  科目表 Account 科目 Vendor master dada  供应商主数据 Customer master da ...

  5. vander范德蒙德行列式

    https://baike.baidu.com/item/%E8%8C%83%E5%BE%B7%E8%92%99%E8%A1%8C%E5%88%97%E5%BC%8F function m=vande ...

  6. iOS开发中@property的属性weak nonatomic strong readonly等

    请看  https://www.cnblogs.com/liubeimeng/p/4244686.html

  7. docker --Dockerfile--一些语法

    环境更换 环境变量(与声明的ENV声明),也可以在特定指令作为变量用来被解释 Dockerfile.转义也被处理,从字面上包含类似于变量的语法. 环境变量Dockerfile用 $variable_n ...

  8. Django-website 程序案例系列-18 多表跨表操作优化

    详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化 在数据库有外键的时候,使用 select_related() 和 pref ...

  9. openfalcon架构及相关服务配置详解

    一:openfalcon组件 1.falcon-agent 数据采集组件 agent内置了一个http接口,会自动采集预先定义的各种采集项,每隔60秒,push到transfer. 2.transfe ...

  10. (转)二分图匹配匈牙利算法与KM算法

    匈牙利算法转自于: https://blog.csdn.net/dark_scope/article/details/8880547 匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名 ...