python脚本修改hosts文件

Posted _慕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python脚本修改hosts文件相关的知识,希望对你有一定的参考价值。

  用python3写了个修改hosts的小脚本,没有技术含量,顺带复习一下文件操作和os、sys模块的内容了。

 

# -*- coding:utf-8 -*- 
#!/usr/bin/env python
# @Author  : tianbao
# @Contact : gmu1592618@gmail.com
# @Time    : 2018/4/5 17:06
# @File    : change_host_file.py
# @Software: PyCharm
\'\'\'
使用说明:
    PATH :HOSTS文件路径
    NEW_PATH :新HOSTS文件路径
    
    在change_host_file.py所在目录打开cmd运行以下命令
                                     方法   IP        网址
    添加:python change_host_file.py add 8.8.8.8 www.google.com
    删除:python hange_host_file.py del 126.125.66.198   删除整行
    修改:python hange_host_file.py change www.cnblogs.com www.google.com
                                                 old              new
\'\'\'
import sys,os,re

PATH = \'G:\\jiaoben\\HOSTS\'
NEW_PATH = \'G:\\jiaoben\\HOSTS_NEW\'
def run():
    try:
        if sys.argv[1] == \'add\':
            with open(PATH,\'a+\',encoding=\'utf-8\') as f:
                new_IP = sys.argv[2] + \' \'+ sys.argv[3]
                f.write(\'\\n\')
                f.write(new_IP)
                sys.exit(\'添加成功,请查看源文件\')
        elif sys.argv[1] == \'del\':
            with open(PATH, \'r+\', encoding=\'utf-8\') as f,open(NEW_PATH, \'a+\', encoding=\'utf-8\') as f2:
                data = f.readlines()
                for line in data:
                    if sys.argv[2] in line:
                        continue
                    f2.write(line)
            os.remove(PATH)
            os.rename(NEW_PATH,PATH)
            sys.exit(\'删除成功,请查看源文件\')
        elif sys.argv[1] == \'change\':
            open(NEW_PATH, \'a+\').write(re.sub(r\'%s\'% sys.argv[2],\'%s\'% sys.argv[3],open(PATH).read()))
            os.remove(PATH)
            os.rename(NEW_PATH,PATH)
            sys.exit(\'修改成功,请查看源文件\')
    except Exception as e:
        print(e)
if __name__ == \'__main__\':
    run()

  

以上是关于python脚本修改hosts文件的主要内容,如果未能解决你的问题,请参考以下文章

python 随机远程主机修改密码

使用 shell 脚本修改 /etc/hosts 文件

修改hosts文件的脚本1.0

帮忙写个Linux下shell脚本,(使用sed命令处理hosts文件)

利用bat脚本在hosts文件里增加一行内容

python ssh 连接远程服务器,修改文本内容,调用脚本