首页 > 代码库 > python 小程序,替换文件中的字符串

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

 1 [root@PythonPC ~]# 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/halt10 [root@PythonPC ~]# 11 [root@PythonPC ~]# python 5.py passwd 0 112 [root@PythonPC ~]# 13 [root@PythonPC ~]# cat passwd 14 root:x:1:1:root:/root:/bin/bash15 bin:x:1:1:bin:/bin:/sbin/nologin16 daemon:x:2:2:daemon:/sbin:/sbin/nologin17 adm:x:3:4:adm:/var/adm:/sbin/nologin18 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin19 sync:x:5:1:sync:/sbin:/bin/sync20 shutdown:x:6:1:shutdown:/sbin:/sbin/shutdown21 halt:x:7:1:halt:/sbin:/sbin/halt22 [root@PythonPC ~]# 23 [root@PythonPC ~]# python 5.py passwd 1 2 passwd.new24 [root@PythonPC ~]# 25 [root@PythonPC ~]# cat passwd26 root:x:1:1:root:/root:/bin/bash27 bin:x:1:1:bin:/bin:/sbin/nologin28 daemon:x:2:2:daemon:/sbin:/sbin/nologin29 adm:x:3:4:adm:/var/adm:/sbin/nologin30 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin31 sync:x:5:1:sync:/sbin:/bin/sync32 shutdown:x:6:1:shutdown:/sbin:/sbin/shutdown33 halt:x:7:1:halt:/sbin:/sbin/halt34 [root@PythonPC ~]# 35 [root@PythonPC ~]# cat passwd.new 36 root:x:2:2:root:/root:/bin/bash37 bin:x:2:2:bin:/bin:/sbin/nologin38 daemon:x:2:2:daemon:/sbin:/sbin/nologin39 adm:x:3:4:adm:/var/adm:/sbin/nologin40 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin41 sync:x:5:2:sync:/sbin:/bin/sync42 shutdown:x:6:2:shutdown:/sbin:/sbin/shutdown43 halt:x:7:2:halt:/sbin:/sbin/halt44 [root@PythonPC ~]# 45 [root@PythonPC ~]# python 5.py passwd o46 参数错误:python 5.py 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]47 [root@PythonPC ~]# python 5.py passw 1 248 文件不存在49 [root@PythonPC ~]# 

 

脚本代码如下:

 

 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])

 

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