亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

如何使用python切換hosts文件

瀏覽:3日期:2022-07-27 08:31:58

做開發或測試時常需要切換hosts ,如果hosts比較多,那么頻繁的打開hosts文件對地址加注釋(#),再把去掉注釋是個繁瑣的事情。

當然,SwitchHosts 已經可以幫我們方便的解決了這個繁瑣的事情。

https://github.com/oldj/SwitchHosts

但筆者還是自己嘗試用python寫個小程序來實現切換。以需求為驅動來解決日常的問題是件非常有意思的事。

假如我們有一組hosts:

172.168.12.107 www.baidu.com172.168.10.213 account.baidu.com172.168.12.107 pan.baidu.com172.168.12.107 passport.baidu.com172.168.10.129 is.baidu.com172.168.12.107 un.baidu.com

寫代碼之前想清楚幾點。

1、hosts 文件一般放在我們的C:WINDOWSsystem32driversetc目錄下,沒有擴展名。我們可以通過記事本打開。python 的os模塊可以用于打開本地文件。

2、我們要做的操作也很簡單,加注釋(加#號),去掉注釋(去掉#號)。去掉注釋時,當我打開瀏覽器訪問www.baidu.com 時,其實訪問的是本地的,172.168.12.107 主機。加上注釋時,那么訪問的就是真的百度服務器。

3、我們要做的操作是判斷,每一行數據的第一個字符是否有#號,沒有的話就加上。

打開python shell 練習加“#”號操作

>>> abc = ’127.168.10.107 www.baidu.com’>>> a = abc[0]>>> if a != ’#’: nabc = ’#’+abc print nabc#127.168.10.107 www.baidu.com

定義abc字符串,abc[0] 表示取字符串的第一個字符,判斷是是否為#號,如果不是,就把#號加到abc字符串的前面。

添加注釋的完整代碼入下:

#coding=utf-8import osdef add_jing(): input = open(r’C:WINDOWSsystem32driversetcHOSTS’, ’r’) lines = input.readlines() input.close() output = open(r’C:WINDOWSsystem32driversetcHOSTS’, ’w’) for line in lines: if not line: break jing = line[0] if jing != ’#’: print line nf = ’#’ + line output.write(nf) else: output.write(line)output.close()if __name__ == '__main__': add_jing()

程序先以讀(r)的方式打開HOST文件,readlines() 方法逐行的讀取內容。然后,close()關閉文件。

程序再以寫(w)的方式打開HOST文件,對readlines() 獲取的每一行數據判斷是否有#號,沒有的話加上。并通過write() 方法寫入到HOST文件中。最后close()關閉文件。

打開python shell 練習“#”號操作:

>>> abc = ’#127.168.10.107 www.baidu.com’>>> a = abc[0]>>> if a == ’#’: nabc = abc.replace(’#’,’’) print nabc127.168.10.107 www.baidu.com

同樣取字符串的第一個字符判斷,如果是#號,那么通過replace()方法 將#號替換成空(’’)

去掉注釋的完整代碼:

def del_jing(): input = open(r’C:WINDOWSsystem32driversetcHOSTS’, ’r’) lines = input.readlines() input.close() output = open(r’C:WINDOWSsystem32driversetcHOSTS’, ’w’) for line in lines: if not line: break jing = line[0] if jing == ’#’: print line nf = line.replace(’#’,’’) output.write(nf) else: output.write(line)output.close()if __name__ == '__main__': del_jing()

通過運行add_jing() 和del_jing()兩個函數的方式并不靈活。這里只是通過修改#的方式來切換hosts ,那么你也可以將hosts定義一個數組,直接寫入到HOST文件。通過

寫入不同的數組來達到切換不同hosts的目的。

#coding=utf-8import os’’’內網測試環境’’’insides = [’172.168.12.107 www.baidu.com’, ’172.168.10.129 pan.baidu.com’, ’172.168.12.107 un.baidu.com’, ’172.168.12.107 passport.baidu.com’]’’’外網測試環境’’’outsides = [’172.16.12.223 www.baidu.com’, ’172.16.10.223 pan.baidu.com’, ’172.16.12.111 un.baidu.com’, ’172.16.12.223 passport.baidu.com’]def inside_test(): output = open(r’C:pyseHOSTS.txt’, ’w’) for insid in insides: print insid output.write(insid) output.write('n') output.close()def outside_test(): output = open(r’C:pyseHOSTS.txt’, ’w’) for outsid in outsides: print outsid output.write(outsid) output.write('n') output.close() if __name__ == '__main__': #inside_test() outside_test()

上面的方式會更加簡單,把定義的host數組寫到HOST文件中,注意:每寫一個數組元素需要加一個回車換行---write('n')

如果想繼續增加切換host的便捷性,可以使用wxPython寫一個host的配置界面出來,那么也就是我們的SwitchHosts 工具了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产在线观看一区二区三区四区 | 亚洲制服丝袜在线观看 | 日韩永久免费视频 | 91亚洲国产成人久久精品网站 | 成人午夜免费观看 | 欧美日韩一区二区三区久久 | 国产精品久久一区一区 | 日韩精品a在线视频 | 日韩精品一区在线观看 | 青青国产成人久久激情911 | 一级毛片a女人刺激视频免费 | 1024在线观看 | 粉嫩极品国产在线播放 | 成人午夜兔费观看网站 | 国产欧美日韩在线播放 | 免费黄色毛片 | 国产精品高清一区二区三区 | 色偷偷亚洲女人天堂观看欧 | 爱爱欧美 | 国产美女亚洲精品久久久综合91 | 日韩在线免费视频观看 | 91麻豆传传媒波多野衣久久看 | 日本zzzzzzz毛片 | 欧美日韩乱妇高清免费 | 高清视频欧美性生活 | 国产一级一级毛片 | 国产在线不卡午夜精品2021 | 一级毛片一级毛片a毛片欧美 | 亚洲人成伊人成综合网久久 | 中美日韩在线网免费毛片视频 | 国产成人精品影院狼色在线 | 国产不卡免费视频 | 国产一区二区三区不卡在线观看 | 午夜影院一区 | 黄色a级在线观看 | 日韩 欧美 亚洲 中文字幕 | yy6080久久国产伦理 | 男女国产一级毛片 | 大片免费看 | 亚洲 欧美 激情 另类 校园 | 国产一级片视频 |