當我們想要將自己電腦上面當檔案共享出去時,往往會通過設定共享資料夾或者使用第三方軟體等方式來實現。這麼做的缺點在於,操作繁瑣,而且不同系統下的操作方式也不一樣,很不方便。那有沒有一種通用的,快捷的共享檔案方式呢?答案是肯定的,通過python,我們可以輕易的實現這一點。
[port]上述命令可以將當前目錄作為乙個檔案伺服器,伺服器位址為你的ip:[port]。port引數可不填,預設埠為8000。因此,在同一區域網下,別人就可以通過你的ip:[port]這個位址訪問到你當前資料夾下的所有檔案。
那每次都要輸入這個命令,還是很麻煩的。為此,我們可以給這命令設定乙個簡單又好記的別名,就叫它share好了。
mac/linux下:
開啟 ~/.bashrc檔案,在最後一行加上:
alias share="python -m ******httpserver"
儲存退出後,執行source ~/.bashrc即可。以後再想共享檔案,只需要cd到指定目錄,輸入share命令就可以了,是不是很方便呢!
windows使用者設定別名稍微有點麻煩:
在你喜歡的地方新建乙個檔案,將它命名為env.bat或者其他你喜歡的名字.bat,輸入如下內容:
@echo
offdoskey share=python -m ******httpserver
然後在登錄檔hkey_current_user\software\microsoft\command processor下面加一項autorun,把值設為你的指令碼路徑。
或者新建檔案auto.reg,輸入以下命令:
windows registry editor version
5.00
[hkey_current_user\software\microsoft\command processor]
"autorun"="%userprofile%\\env.bat"
具體可參考windows系統如何給命令起別名?上述內容操作完畢後,即可像mac/linux系統一樣,在指定目錄輸入share命令即可共享該資料夾下的所有內容。
通過這種方式最終在控制台顯示的內容為:
如果給別人共享檔案,此時還需要另外查詢一次本機ip,比較繁瑣。
[port]這行命令呼叫了******httpserver模組的main()方法。我們進入到該類中:
test()發現它最終呼叫了basehttpserver類的test方法,繼續跟進去:
httpd.serve_forever()可以看到我們控制台列印的內容就在**的倒數第二行。下述**可以獲取本機ip:
myname = socket.getfqdn(socket.gethostname())
myaddr = socket.gethostbyname(myname)
print myaddr
因此我們只需要將**修改為下述這種即可:
httpd.serve_forever()此時再在控制台輸入」share」命令,即可列印本機ip。
hgfs共享使用檔案
假設你在虛擬機器裡安裝redhat linux,那麼windows叫做host系統,linux叫做guest系統,其他的模式類似。vmware tools是vmware自帶的工具,在guest作業系統上安裝了這個工具可以優化圖形顯示 方便windwos與linux檔案共享。例如,未安裝vmware ...
python多模組檔案共享變數
有多個檔案,在任意乙個檔案中修改,在其他檔案中訪問的都是修改之後的值 1 用乙個檔案儲存變數 這個思路沒問題,但在乙個檔案中修改後,在另乙個檔案中訪問時還是原來的內容。定義檔案a.py x 0b.py import a a.x 10 執行該檔案c.py import a print a.x 執行結果...
linux 使用samba進行共享檔案
1 開啟samb的配置目錄 vim etc samb smb.conf 2 新增乙個共享的目錄,在smb.conf最後行,新增下面 public comment public path var www write list root 寫檔案使用者 read list root 讀檔案使用者 3 下面...