标签:python替换文件
#需求
用Python来替换掉文件里面的内容
#脚本内容如下
#!/usr/bin/env python #_*_ coding:utf-8 _*_ import sys,os #小于四个位置变量则退出脚本 if len(sys.argv) <4: print "useage: ./file_replace.py old_text new_text filename" sys.exit() #设置三个位置变量 old_text,new_text = sys.argv[1],sys.argv[2] file_name = sys.argv[3] #设置原文件可读,新文件可写 f = file(file_name,‘rb‘) new_file = file(‘.%s.bak‘ % file_name,‘wb‘) #把替换内容写入新文件 for line in f.xreadlines(): new_file.write(line.replace(old_text,new_text)) #关闭文件 f.close() new_file.close() #--bak判断用户需不需要先备份再修改文件 if ‘--bak‘ in sys.argv: #加上--bak就备份原文件 os.rename(file_name, ‘%s.bak‘ %file_name) #原文件备份为xx.bak os.rename(‘.%s.bak‘ %file_name , file_name) #替换的新文件改为xx else: #不加--bak替换后的新文件直接复盖原文件 os.rename(‘.%s.bak‘ %file_name , file_name)
#查看要替换的文件
[root@localhost opt]# cat passwd ntp:x:38:38::/etc/ntp:/sbin/nologin mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash wsyht:x:500:500::/home/wsyht:/bin/bash
#执行脚本不备份原有文件
[root@localhost opt]# python replace.py : ! passwd [root@localhost opt]# cat passwd qemu!x!107!107!qemu user!/!/sbin/nologin radvd!x!75!75!radvd user!/!/sbin/nologin wsyht!x!500!500!!/home/wsyht!/bin/bash
#执行脚本备份原有文件
[root@localhost opt]# python replace.py ! : passwd --bak [root@localhost opt]# cat passwd qemu:x:107:107:qemu user:/:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin wsyht:x:500:500::/home/wsyht:/bin/bash [root@localhost opt]# cat passwd.bak qemu!x!107!107!qemu user!/!/sbin/nologin radvd!x!75!75!radvd user!/!/sbin/nologin wsyht!x!500!500!!/home/wsyht!/bin/bash
本文出自 “wsyht的博客” 博客,请务必保留此出处http://wsyht2015.blog.51cto.com/9014030/1795727
标签:python替换文件
原文地址:http://wsyht2015.blog.51cto.com/9014030/1795727