Python學習筆記(一)

    大家好,非誠歡迎來到我的博客空間,本人計算機小碩一枚,剛剛畢業,開始踏入工作崗位,之前有學習過Java Web開發的相關知識,工作中需要用到Python,一邊學習Python中,一邊進行博客的編寫,這是我第一次寫博客,也希望自己以後有時間能夠繼續下去,將自己所學到的東西分享出去。

    如果你是網絡編程者,系統/網絡管理員,或者是一個Web應用的開發者,你需要對Python編程語言以及TCP/IP的網絡概念有一個基本的熟悉。然而,如果你是一個初學,者,隨着你對我的博客的持續的關注和學習,你將會對上述概念逐漸有深入的瞭解。

    我會首先通過一些簡單的實例來介紹Python的核心網絡庫。Python的套接字(socket)模塊既有基於類的又有基於實例使用的方法,兩者的不懂在於基於類的方式不需要一個socket對象的實例。這是一種非常直觀的方法。例如,爲了能夠打印你的機器的IP的地址,你不需要一個socket對象。你可以僅僅調用基於類的socket的方法。另一方面,如果你需要發送一些數據到服務應用,最直觀的方式是你創造一個socket對象來執行具體的方法。在我博客中能展現的方法總結爲一下幾組。

    在剛開始的幾個方案中,基於類的使用被用來提取一些關於主機,網絡以及目標服務的有用的信息。

    其次,更多的方案用來展示使用基於實例的使用。一些共同的socket任務,包括操縱socket超時,緩存尺寸,塊狀態等。

最後,將基於類的以及基於實例的使用來構建一些客戶端,可以用來執行一些實際的任務,例如將本機的時間與網絡服務器的時間進行同步,或者寫一個通用的客戶,服務器腳本。

(-)打印機器名字和IPv4的地址

    有些時候,你需要快速發現一些關於你機器的信息,例如主機名,IP地址,網絡接口的數量等,使用Python腳本是非常容易完成的。

    在你編碼之前,需要安裝一個Python在你的機器上。Python會預先安裝在很多不同版本的Linux系統中。對於Windows操作系統,你能通過Python的官方網站  https://www.python.org/downloads/  下載二進制的包。

    當你安裝好Python之後,在命令臺輸入如下的命令,將會得到如下結果,本人是在Linux centos系6統下進行的輸入,系統自帶Python編輯功能。

    我們可以看到下面的案例,雖然案例很短,你能夠通過這種方式來與Python的編譯器進行交互。我們首先需要通過下面的命令導入Python的socket包。

>>> import socket

    之後,我們從socket庫中調用gethostname()方法,將結果存入變量中,如下所示。

>>> host_name = socket.gethostname()

>>>print "host name %s" %host_name


    當我在繼續使用gethostbyname()方法時,出現了錯誤,如下:


    解決方法:該錯誤的原因是/etc/hostname文件寫的hostname 沒有寫在/etc/hosts裏, 加上就好了 。 比如添加 “127.0.0.1 host-192-168-14-112” 到hosts最後一行。之後從新將代碼輸入後結果:


    這個完整的過程包裹在一個獨立的函數print_machine_info。這個函數使用了嵌入到這個socket類的方法。

    我們按照一般的慣例從Python的__mian__塊調用我們的函數,在方法運行期間,Python會給一些內部變量分配一些值,例如__name__。在這種情況下,__name__指的是調用過程中的名字。當從命令行運行下面這個腳本的時候,它的名字將是__main__,但是當這個模塊引入其它的腳本的時候名字將會不同。這意味着當一個模塊從命令行被調用了,它將自動運行我們的print_machine_info函數,然而,當分別引入的時候,用戶需要明確調用這個函數,下面是代碼以及運行結果。

  

 在我的機器上運行結果:

  

    這個是在我機器上展示的結果,根據各個機器不同,運行結果會有所不同。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章