pythonを使用してhostsファイルを切り替える方法

多くの場合、開発やテストを行うときにホストを切り替える必要があります。ホストがさらにある場合は、ホストファイルを頻繁に開いてアドレスにコメント(#)を追加してから、コメントを削除するのは面倒な作業です。

もちろん、SwitchHostsは、この面倒なことを便利に解決するのに役立ちます。

https://github.com/oldj/SwitchHosts

しかし、私はまだpythonを使用して、切り替える小さなプログラムを作成しようとしています。日々の問題を解決するために需要主導型であることは非常に興味深いことです。

ホストのグループがある場合:

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

コードを書く前に、いくつかの点について考えてください。

1、 ホストファイルは通常、拡張子なしでC:\ WINDOWS \ system32 \ drivers \ etc \ディレクトリに配置されます。メモ帳で開くことができます。 pythonのosモジュールを使用して、ローカルファイルを開くことができます。

2、 私たちがしなければならない操作も非常に簡単で、コメントを追加(#記号を追加)、コメントを削除(#記号を削除)します。コメントを削除するとき、ブラウザを開いてwww.baidu.comにアクセスすると、実際にはローカルホストの172.168.12.107にアクセスします。コメントが追加されると、実際のBaiduサーバーにアクセスします。

3、 私たちがしなければならない操作は、データの各行の最初の文字に#記号があるかどうかを判断することです。ない場合は、それを追加します。

pythonシェルを開き、「#」の追加を練習します

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

プログラムは最初にHOSTファイルを読み取り(r)モードで開き、readlines()メソッドがコンテンツを1行ずつ読み取ります。次に、close()はファイルを閉じます。

次に、プログラムは(w)を書き込んでHOSTファイルを開き、readlines()によって取得されたデータの各行に#記号があるかどうかを判断し、ない場合は追加します。そして、write()メソッドを介してHOSTファイルに書き込みます。最後に、close()はファイルを閉じます。

pythonシェルを開き、「#」操作を練習します。

 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

また、文字列の最初の文字を使用して、それが#記号であるかどうかを判断し、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()

2つの関数add_jing()とdel_jing()を実行する方法は柔軟ではありません。 #を変更してホストを切り替えるだけです。次に、ホストの配列を定義して、HOSTファイルに直接書き込むこともできます。沿って

異なるホスト間で切り替える目的を達成するために、異なるアレイを記述します。

# 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:\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()

上記の方法はより簡単になります。定義されたホスト配列をHOSTファイルに書き込みます。注:各配列要素は、キャリッジリターンとラインフィードを使用して書き込む必要があります—write( "\ n")

ホストの切り替えの利便性を引き続き高めたい場合は、wxPythonを使用してホスト構成インターフェイスを作成できます。これがSwitchHostsツールです。

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

pythonを使用してhostsファイルを切り替える方法
pythonファイルが書かれた後に練習する方法
python設定ファイルの書き方
pythonプログラムを保存する方法
pythonモジュールを表示する方法
reprを使用してpythonプログラムをデバッグする方法
Pythonタイムモジュールを学ぶ方法
pythonでround関数を使用する方法
Pythonでzip関数を使用する方法
pythonでformat関数を使用する方法
コマンドラインからpythonを入力する方法
ダウンロードしたモジュールをpythonでインストールする方法
Pythonコードをまとめて正しく移動する方法
pythonファイルの読み取りエラーに対処する方法
Pythonでのパッケージの導入を理解する方法
Pythonを使用して広州の不動産市場を分析する
pythonコードにコメントする方法
pythonをすばやく学ぶ方法
pythonプラグインをアンインストールする方法
pythonオブジェクトを理解する方法
パイソンタプルの使い方
pythonで円の領域を見つける方法
Python |再帰を使用して解決する関数
pythonウェブページコードの表示方法
pythonスレッドプールの使用方法
Pythonがメール機能を実装する方法
pythonはどのように環境を変えますか
Pythonを使用して複数のクリップボードを実装する
Pythonで括弧を省略する方法
CentOS8にPython3.8をインストールする方法
pythonでクラスを書く方法
pythonで数値をフィルタリングする方法
PythonでExcelを読む方法
CentOS8にPythonをインストールする方法
python dict garbledを解決する方法
pythonでエラーを表示する方法
pythonでreturnを書く方法
Pythonがファイルディレクトリでどのように動作するか
Pythonがタイマー機能を実装する方法
Pythonで変数を理解する方法
pythonで変数をクリアする方法
pythonオブジェクト指向プログラミングを理解する方法
PythonでSQLiteを使用する方法
圧縮パッケージを使用してLinux環境にJDK13をインストールする方法
Pythonファイル処理の実用ガイド
Pythonがswitchステートメントをサポートしないのはなぜですか?
pythonのインストールが成功したことを確認する方法
Pythonで地球を作る方法
およびおよびまたはPythonでの使用方法
pythonでキャッシュファイルを削除する方法
pythonはどのように計算速度を向上させますか
pythonでnull値を表す方法
pythonでテキストファイルを保存する方法
パスワードの強度を判断するためのPython文字列
PYTHONを使用してニュース記事をクロールする方法
pythonでwinプログラムを書く方法
pythonでid関数を実行する方法
pythonでエラーをカスタムキャッチする方法
pythonでtryステートメントを書く方法
Pythonでプライベート属性を定義する方法
R&D:CentOS7にPython3をインストールする方法