最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用python切換hosts文件

 更新時(shí)間:2020年04月29日 10:48:28   作者:蟲師  
這篇文章主要介紹了如何使用python切換hosts文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

當(dāng)然,SwitchHosts 已經(jīng)可以幫我們方便的解決了這個(gè)繁瑣的事情。

https://github.com/oldj/SwitchHosts

  但筆者還是自己嘗試用python寫個(gè)小程序來實(shí)現(xiàn)切換。以需求為驅(qū)動(dòng)來解決日常的問題是件非常有意思的事。

假如我們有一組hosts:

172.168.12.107 www.baidu.com
172.168.10.213 account.baidu.com
172.168.12.107 pan.baidu.com
172.168.12.107 passport.baidu.com
172.168.10.129 is.baidu.com
172.168.12.107 un.baidu.com

寫代碼之前想清楚幾點(diǎn)。

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

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

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

打開python shell 練習(xí)加“#”號操作

>>> 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] 表示取字符串的第一個(gè)字符,判斷是是否為#號,如果不是,就把#號加到abc字符串的前面。

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

#coding=utf-8
import os

def add_jing():
  input = open(r'C:\WINDOWS\system32\drivers\etc\HOSTS', 'r')
  lines = input.readlines()
  input.close()

  output = open(r'C:\WINDOWS\system32\drivers\etc\HOSTS', '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() 方法逐行的讀取內(nèi)容。然后,close()關(guān)閉文件。

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

打開python shell 練習(xí)“#”號操作:

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

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

去掉注釋的完整代碼:

def del_jing():
  input = open(r'C:\WINDOWS\system32\drivers\etc\HOSTS', 'r')
  lines = input.readlines()
  input.close()

  output = open(r'C:\WINDOWS\system32\drivers\etc\HOSTS', '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()

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

寫入不同的數(shù)組來達(dá)到切換不同hosts的目的。

#coding=utf-8
import os

'''內(nèi)網(wǎng)測試環(huán)境'''
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']

'''外網(wǎng)測試環(huán)境'''
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:\pyse\HOSTS.txt', 'w')
  for insid in insides:
    print insid
    output.write(insid)
    output.write("\n")
  output.close()

def outside_test():
  output = open(r'C:\pyse\HOSTS.txt', 'w')
  for outsid in outsides:
    print outsid
    output.write(outsid)
    output.write("\n")
  output.close()  


if __name__ == "__main__":
  #inside_test()
  outside_test()

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python使用pyhook監(jiān)控鍵盤并實(shí)現(xiàn)切換歌曲的功能

    python使用pyhook監(jiān)控鍵盤并實(shí)現(xiàn)切換歌曲的功能

    這篇文章主要介紹了python使用pyhook監(jiān)控鍵盤并實(shí)現(xiàn)切換歌曲的功能,非??犰诺囊粋€(gè)小程序,可以讓你在游戲時(shí)避免切出游戲直接換歌,需要的朋友可以參考下
    2014-07-07
  • django頁面跳轉(zhuǎn)問題及注意事項(xiàng)

    django頁面跳轉(zhuǎn)問題及注意事項(xiàng)

    這篇文章主要介紹了django頁面跳轉(zhuǎn)問題及注意事項(xiàng),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python matplotlib繪制實(shí)時(shí)數(shù)據(jù)動(dòng)畫

    Python matplotlib繪制實(shí)時(shí)數(shù)據(jù)動(dòng)畫

    Matplotlib作為Python的2D繪圖庫,它以各種硬拷貝格式和跨平臺(tái)的交互式環(huán)境生成出版質(zhì)量級別的圖形。本文將利用Matplotlib庫繪制實(shí)時(shí)數(shù)據(jù)動(dòng)畫,感興趣的可以了解一下
    2022-03-03
  • 聊聊Pytorch torch.cat與torch.stack的區(qū)別

    聊聊Pytorch torch.cat與torch.stack的區(qū)別

    這篇文章主要介紹了Pytorch torch.cat與torch.stack的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • OpenCV立體圖像深度圖Depth Map基礎(chǔ)

    OpenCV立體圖像深度圖Depth Map基礎(chǔ)

    這篇文章主要為大家介紹了OpenCV立體圖像深度圖Depth Map基礎(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Python中關(guān)鍵字is與==的區(qū)別簡述

    Python中關(guān)鍵字is與==的區(qū)別簡述

    這篇文章主要介紹了Python中關(guān)鍵字is與==的區(qū)別,對于Python初學(xué)者有一定的借鑒學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2014-07-07
  • Python面向?qū)ο缶幊讨惖姆庋b

    Python面向?qū)ο缶幊讨惖姆庋b

    這篇文章主要介紹了Python面向?qū)ο缶幊讨惖姆庋b封裝指屬性和方法的抽象,屬性的抽象又指對類的屬性進(jìn)行定義、隔離和保護(hù),下面來看看文章的具體內(nèi)容吧,需要的朋友可以參考一下,希望對你有所幫助
    2021-11-11
  • python銀行卡號碼校驗(yàn)Luhn模10算法

    python銀行卡號碼校驗(yàn)Luhn模10算法

    這篇文章主要為大家介紹了python銀行卡號碼校驗(yàn)Luhn模10算法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python中分支語句與循環(huán)語句實(shí)例詳解

    Python中分支語句與循環(huán)語句實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于Python中分支語句與循環(huán)語句的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • python中單例常用的幾種實(shí)現(xiàn)方法總結(jié)

    python中單例常用的幾種實(shí)現(xiàn)方法總結(jié)

    Python 的模塊就是天然的單例模式,下面這篇文章主要給大家介紹了關(guān)于python中單例常用的幾種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python單例具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們一起來看看吧
    2018-10-10

最新評論

阿合奇县| 永新县| 娄底市| 舞钢市| 丹棱县| 临夏市| 县级市| 华阴市| 绥宁县| 微博| 昌图县| 三门县| 甘肃省| 汝州市| 鹿泉市| 淮北市| 宕昌县| 奉化市| 营山县| 临桂县| 昭苏县| 湖南省| 嘉祥县| 香港| 新泰市| 自贡市| 高雄市| 梓潼县| 日喀则市| 武宁县| 邵阳市| 皮山县| 开鲁县| 阳城县| 大同市| 青冈县| 温州市| 诸暨市| 屏东市| 远安县| 渝中区|