Python文件操作中進行字符串替換(保存到新文件/當前文件)


題目:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM