Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)


Posted in Python onJune 28, 2019

题目:

1.首先将文件:/etc/selinux/config 进行备份 文件名为 /etc/selinux/config.bak

2.再文件:/etc/selinux/config 中的enforcing 替换为 disabled

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#   enforcing - SELinux security policy is enforced.
#   permissive - SELinux prints warnings instead of enforcing.
#   disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#   targeted - Targeted processes are protected,
#   minimum - Modification of targeted policy. Only selected processes are protected. 
#   mls - Multi Level Security protection.
SELINUXTYPE=enforcing

•方法一:用replace

import os
import shutil
def selinux_config():
  """
  关闭SELINUX
  修改文件内容
  :return:
  """
  file_selinux = '/etc/selinux/config'
  backup_file_selinux = file_selinux + '.bak'
  temp_file_selinux = file_selinux + '.temp'
  if not os.path.exists(backup_file_selinux):
    shutil.copy2(file_selinux, backup_file_selinux)
    with open(file_selinux, mode='r') as fr, open(temp_file_selinux, mode='w') as fw:
      origin_line = 'SELINUX=enforcing'
      update_line = 'SELINUX=disabled'
      for line in fr:
        fw.write(line.replace(origin_line, update_line))
    os.remove(file_selinux)
    os.rename(temp_file_selinux, file_selinux)
if __name__ == '__main__':
  selinux_config()

•方法二:用re.sub

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os
import re
import shutil
def selinux_config():
  """
  关闭SELINUX
  修改文件内容
  :return:
  """
  file_selinux = '/etc/selinux/config'
  backup_file_selinux = file_selinux + '.bak'
  temp_file_selinux = file_selinux + '.temp'
  if not os.path.exists(backup_file_selinux):
    shutil.copy2(file_selinux, backup_file_selinux)
    with open(file_selinux, mode='r') as fr, open(temp_file_selinux, mode='w') as fw:
      origin_line = 'SELINUX=enforcing'
      update_line = 'SELINUX=disabled'
      for line in fr:
        re_sub_list = re.sub(origin_line, update_line, line) # 这里用re.sub进行替换后放入 re_sub_list中
        fw.writelines(re_sub_list) # 将列表中的每一行进行写入。writelines是将序列对象中的每一行进行写入。
    os.remove(file_selinux)
    os.rename(temp_file_selinux, file_selinux)
if __name__ == '__main__':
  selinux_config()

总结

以上所述是小编给大家介绍的Python文件操作中进行字符串替换的方法(保存到新文件/当前文件) ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
全面解析Python的While循环语句的使用方法
Oct 13 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
python在回调函数中获取返回值的方法
Feb 22 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
python数据化运营的重要意义
Nov 25 Python
Python @property装饰器原理解析
Jan 22 Python
python实现图像全景拼接
Mar 27 Python
django模板获取list中指定索引的值方式
May 14 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
python 数据类型强制转换的总结
Jan 25 Python
python使用shell脚本创建kafka连接器
Apr 29 Python
python打开windows应用程序的实例
Jun 28 #Python
python中PS 图像调整算法原理之亮度调整
Jun 28 #Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 #Python
Python实现 PS 图像调整中的亮度调整
Jun 28 #Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 #Python
python启动应用程序和终止应用程序的方法
Jun 28 #Python
简单了解python高阶函数map/reduce
Jun 28 #Python
You might like
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
js实现秒表计时器
2019/12/16 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
Python聊天室程序(基础版)
2018/04/01 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
python3实现绘制二维点图
2019/12/04 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
python如何调用百度识图api
2020/09/29 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
家长会演讲稿范文
2014/01/10 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
党员活动日总结
2014/05/05 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2014年党支部工作总结
2014/11/13 职场文书
预备党员转正意见
2015/06/01 职场文书
结婚典礼致辞
2015/07/28 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android