前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python替换文件内容(文件处理)

Python替换文件内容(文件处理)

作者头像
py3study
发布2020-01-09 16:27:39
1.8K0
发布2020-01-09 16:27:39
举报
文章被收录于专栏:python3

#需求

用Python来替换掉文件里面的内容

#脚本内容如下

代码语言:javascript
复制
#!/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)

#查看要替换的文件

代码语言:javascript
复制
[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

#执行脚本不备份原有文件

代码语言:javascript
复制
[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

#执行脚本备份原有文件

代码语言:javascript
复制
[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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档