python切换hosts文件的代码

发布时间:2020-09-16编辑:脚本学堂
分享一例python脚本,用于hosts文件的切换,挺不错的,相比手工切换hosts文件,确实方便不少,有需要的朋友研究下。

在本地测试程序时,经常需要多个hosts文件来回切换,缘于windows的hosts文件目录比较深,因此用python实现如下脚本来简化操作,提高工作效率哦。

说明:win7以上需要使用管理员权限操作。

例,python切换hosts文件的代码:
 

复制代码 代码示例:

# -*- coding: utf-8 -*-
import os
import glob
import shutil
def format_file_list(files):
        all_files_str = ""
        for i in range(len(files)):
                all_files_str +=  str(i)+":"+files[i]+"n"
        return all_files_str

hosts_path = "C:WindowsSystem32driversetc"
files =  os.listdir(hosts_path)
os.chdir(hosts_path)
if os.getcwd() != hosts_path:
        print("Switch Dir to System32 Error,check permission!npwd:"+os.getcwd())
        exit()

hosts_files = glob.glob("host*")
choosed_file_idx = int(input("Choose Hosts File Index:n"+format_file_list(hosts_files)))
files_num = len(hosts_files)
if (choosed_file_idx < 0 or choosed_file_idx >= files_num) :
        print("Please choose a file in the lists!")
        exit()

print("Choosed idx:{0},file:{1}.".format(choosed_file_idx,hosts_files[choosed_file_idx]))
shutil.copy("hosts","hosts.bak")
shutil.copy(hosts_files[choosed_file_idx],"hosts")
print("Copy ok,then flush dns...")
os.system("ipconfig /flushdns")