1. 程式人生 > >python:一秒中啟動一個下載伺服器

python:一秒中啟動一個下載伺服器

一、背景

在實際工作中,時不時會有這樣的一個需求:將檔案傳給其他同事。將檔案傳給同事本身並不是一個很繁瑣的工作,現在的聊天工具一般都支援檔案傳輸。但是,如果需要傳送的檔案較多,那麼,操作起來就會比較麻煩。此外,如果檔案在遠端的伺服器上,你要將檔案傳給同事,則需要先將遠端伺服器的檔案下載到本地,然後再通過聊天工具傳給同事。再或者,你並不是特別清楚要傳哪幾個檔案給同事,所以,你們需要進行來回的交流。交流的時間成本是比較高的,會降低辦事效率。此時,你們需要更加高效的方法。

二、實現

這個時候,如果你知道Python內建了一個下載伺服器就能夠顯著提升效率了。例如,你的同事要讓你傳的檔案位於某一個目錄下,那麼,你可以進入這個目錄,然後執行下面的命令啟動一個下載伺服器:
python -m SimpleHTTPServer

在Python 3中,由於對系統庫進行了重新整理,因此,使用方式會有不同:

python3 -m http.server
執行上面的命令就會在當前目錄下啟動一個檔案下載伺服器,預設開啟8000埠。這個時候,你只需要將IP和埠告訴同事,讓同事自己去操作即可,非常的方便高效。

三、演示

在root目錄下啟動一個下載伺服器
[[email protected] ~]# python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

使用瀏覽器訪問Python啟動的下載伺服器,可以看到一個類似於FTP下載的介面。這個時候,點選檔案下載即可,降低了大家的溝通成本。

從工作原理角度來說,執行上面的命令,只是啟動了一個Python內建的web伺服器。如果當前目錄下存在一個名為index.html的檔案,則預設會顯示該檔案的內容;如果當前目錄下不存在這樣一個檔案,則預設顯示當前目錄下的檔案列表,也就是大家看到的下載伺服器。

瀏覽器頁面展示: