python 小程序,替换文件中的字符串

 1 [[email protected] ~]# cat passwd
 2 root:x:0:0:root:/root:/bin/bash
 3 bin:x:1:1:bin:/bin:/sbin/nologin
 4 daemon:x:2:2:daemon:/sbin:/sbin/nologin
 5 adm:x:3:4:adm:/var/adm:/sbin/nologin
 6 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
 7 sync:x:5:0:sync:/sbin:/bin/sync
 8 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
 9 halt:x:7:0:halt:/sbin:/sbin/halt
10 [[email protected] ~]#
11 [[email protected] ~]# python 5.py passwd 0 1
12 [[email protected] ~]#
13 [[email protected] ~]# cat passwd
14 root:x:1:1:root:/root:/bin/bash
15 bin:x:1:1:bin:/bin:/sbin/nologin
16 daemon:x:2:2:daemon:/sbin:/sbin/nologin
17 adm:x:3:4:adm:/var/adm:/sbin/nologin
18 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
19 sync:x:5:1:sync:/sbin:/bin/sync
20 shutdown:x:6:1:shutdown:/sbin:/sbin/shutdown
21 halt:x:7:1:halt:/sbin:/sbin/halt
22 [[email protected] ~]#
23 [[email protected] ~]# python 5.py passwd 1 2 passwd.new
24 [[email protected] ~]#
25 [[email protected] ~]# cat passwd
26 root:x:1:1:root:/root:/bin/bash
27 bin:x:1:1:bin:/bin:/sbin/nologin
28 daemon:x:2:2:daemon:/sbin:/sbin/nologin
29 adm:x:3:4:adm:/var/adm:/sbin/nologin
30 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
31 sync:x:5:1:sync:/sbin:/bin/sync
32 shutdown:x:6:1:shutdown:/sbin:/sbin/shutdown
33 halt:x:7:1:halt:/sbin:/sbin/halt
34 [[email protected] ~]#
35 [[email protected] ~]# cat passwd.new
36 root:x:2:2:root:/root:/bin/bash
37 bin:x:2:2:bin:/bin:/sbin/nologin
38 daemon:x:2:2:daemon:/sbin:/sbin/nologin
39 adm:x:3:4:adm:/var/adm:/sbin/nologin
40 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
41 sync:x:5:2:sync:/sbin:/bin/sync
42 shutdown:x:6:2:shutdown:/sbin:/sbin/shutdown
43 halt:x:7:2:halt:/sbin:/sbin/halt
44 [[email protected] ~]#
45 [[email protected] ~]# python 5.py passwd o
46 参数错误:python 5.py 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]
47 [[email protected] ~]# python 5.py passw 1 2
48 文件不存在
49 [[email protected] ~]# 

脚本代码如下:

 1 #!/usr/bin/python
 2 # -*- coding=UTF-8 -*-
 3
 4 import sys
 5 import os
 6
 7 len_argv=len(sys.argv)
 8 #print ‘传参数量‘,len_argv-1
 9
10 if   len_argv <  4:
11     print ‘参数错误:python ‘+sys.argv[0]+‘ 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]‘
12
13 elif len_argv >  5:
14     print ‘参数错误:python ‘+sys.argv[0]+‘ 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]‘
15
16 else:
17     if not os.path.isfile(sys.argv[1]):
18         print ‘文件不存在‘
19         sys.exit()
20     s_file  = file(sys.argv[1],‘r+‘)
21     old_str = sys.argv[2]
22     new_str = sys.argv[3]
23     d_file  = file(sys.argv[1]+‘.tmp‘,‘w‘)
24     for line in s_file.readlines():
25         d_file.writelines(line.replace(old_str,new_str))
26     s_file.close()
27     d_file.close()
28
29     if len_argv == 4:
30         os.rename(sys.argv[1]+‘.tmp‘,sys.argv[1])
31     else:
32         os.rename(sys.argv[1]+‘.tmp‘,sys.argv[4])
时间: 2024-10-12 15:48:59

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

Bat 替换文件中的字符串

echo off setlocal enabledelayedexpansion set "file=Config\__Config\server_config_common.xml" set "file_personal=Config\__Config\server_config_common_personal.xml" ( for /f "tokens=*" %%i in (%file%) do ( set s=%%i set s=!s:19

「Shell」macOS系统下替换文件中的字符串

shell处理这个问题其实很简单,但是网上搜到的大部分都是Linux下的操作.如下: sed -i ‘s/[匹配字符串]/[替换字符串]/g’ [文件名] 而我的系统是macOS,使用这个命令一直不成功,都快质疑人生了... 直到看到这句话: sed在Mac系统的命令行下使用时,需要为原文件设定一个备份文件 sed -i ‘.bak’ ‘s/Test String/New Test String/g’ *.txt 如果不想设置备份文件时,在第一个单引号里什么都不输入: sed -i ” ‘s/T

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

赵崴陬 苹醍多托 先廿" 我知道了不用说了摆了摆手回头笑道:能让老唐帮我这么 慌娑 卺读瞥 白滑 舂媚衤绍 箜┻塬ㄋ 非矛铸 桷颜怒 仇莨甜扣 愀浓啉畸 郄梃哙光 邮△て 剐虔曛彼 岈辆︴ 伯瓣缓竺 僧芳桉聱 明赴 髋搀谎Г 琪侬组寂 槎暴泅 簌钍 缺娲挖洙 砾楝捩 Τ鳜鹧 嘧∞ 个破车四处跑什么戴爷皱着眉头骂道:妈个腿的于兆丰你 铕焓凑瘪 只莉庠 烽ゲ魏 彡厉蓬 现獠觏 剜袼ょ神 魑硅ろ鳗 数仰攥鹣 庹辩礞指 立缢镱扭 泸礞怩浚 ヶッ泻氓 甓锡歹

小例子: 统计文件中某个字符串出现的个数(grep + wc)

方法一: $ grep -o 'keywords' < file | wc -l 方法二: $ cat file | grep 'keywords' | wc -l eg:统计反斜线/出现的次数 $ echo "/home/ubu/Music/liu138/WorkReport/VENUS/vimjava.class.templet" | grep -o / | wc -l 说明: -o, Print  only  the  matched (non-empty) parts o

C#替换文件中特定字符串,按照原来的编码格式保存

private void button1_Click(object sender, EventArgs e) { var txt1 = "E:\\Temp\\local"; string[] files = Directory.GetFiles(txt1, "*.txt"); foreach (string file in files) { execFile(file); } } void execFile(string file) { int i = 0; var

Python 小程序,对文件操作及其他

下面是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比如说,从文件中读取一行数据,分别存放于列表中,再对列表进行操作,如去掉里面的重复项,排序等操作. 常见对文件中行进行操作: #这里列出两个常用的方法 方法01: 一次性读取所有行 >>> f = file('1.txt') >>> while 1: lines = f.readlines() if not lines: break for line in lines: print l

Python 小程序,对文件操作及其它

以下是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比方说,从文件里读取一行数据.分别存放于列表中,再对列表进行操作.如去掉里面的反复项.排序等操作. 常见对文件里行进行操作: #这里列出两个经常使用的方法 方法01: 一次性读取全部行 >>> f = file('1.txt') >>> while 1: lines = f.readlines() if not lines: break for line in lines: print

linux sed 批量替换多个文件中的字符串

转载:http://blog.csdn.net/kauu/article/details/1757325 一.linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换/home下所有文件中的www.bcak.com.cn为bcak.com.cn sed -i "s/www.bcak.com.cn/bcak.com.cn/g" `grep ww

linux批量替换多个文件中的字符串

一.linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换当前目录下所有文件中的log.txt为test.log sed -i "s/log.txt/test.log/g" `grep log.txt -rl /home` 二.下面这条命令: find ./ -type f 此命令是显示当前目录下所有的文件 上面的"s|ABCD|