簡單學習os庫
學習筆記適用於python2,如果python3則需要另按裝環境和模組,及修改一些語法
os常用函式
system(cmd)
#要執行系統或者程式、指令碼
popen()
#返回乙個檔案描述符號為fd的開啟的檔案物件
chdir()
#改變當前工作目錄
listdir()
#列出目錄下的檔案(引數是目錄的絕對路徑)
getcwd()
#獲取當前目錄
remove()
#刪除
使用者執行系統命令
#coding:utf-8
from os import *
#匯入os模組
cmd = raw_input("please input a command:")
#python3則是input()
system(cmd)
#要執行系統或者程式、指令碼
print "it's ok"
使用system檢視目錄
#coding:utf-8
from os import *
system('dir')
#結果返回值只是乙個0
#0表示執行成功,-1則是呼叫成功執行失敗
所以我們要使用popen進行呼叫
#coding:utf-8
from os import *
a = popen('dir')
#返回乙個檔案描述符號為fd的開啟的檔案物件
print('a')
#則返回#只需要print a.read()進行讀取執行結果
如果我們使用for迴圈輸出當前路徑下的檔案
#coding:utf-8
from os import *
#匯入模組
a=listdir(getcwd())
#a賦值當前路徑下的檔案
print '\nthere is ',getcwd(),'\n'
#列印輸出當前路徑
for i in a
print 『 --- 』,i
#listdir返回的是乙個列表,所有要用for迴圈輸出
#輸出 --- icliemt.py
--- iserver.py
--- osdemo.py
--- test
進入當前目錄的其他檔案
#coding:utf-8
from os import *
#匯入模組
print getcwd()
#檢視當前路徑
#則顯示c:\\user\\administrator
#如果要進入其他目錄還要加\\號
chdir(getcwd()+『\\test』)
#進入當前目錄的test目錄
system(test.py)
刪除檔案
from os import *
remove('1.txt')
#刪除當前檔案的1.txt
print "執行前."
for i in listdir(getcwd()):
print i
remove('1.txt')
print 「執行後」
for i in listdir(getcwd()):
print i
#執行前顯示
#1.txt
#iclient.pt
#執行後顯示
#iclient.py
我們有了一點os標準庫的知識,就可以來簡單實現模擬ssh了
實現簡單模擬ssh
先來編寫sshserver
#coding:utf-8
from socket import *
from os import *
#匯入兩個模組
s=socket(af_inet,sock_stream)
#建立套接字
s.bind(('',6666))
#socket到本機位址和6666埠
s.listen(1)
#最大只允許乙個客戶端連線
while true:
#迴圈 sock,addr = s.accept()
#等待客戶端連線請求出現,接受請求之後會返回
#返回兩次
#sock=第一次返回的是我們操作的socket
#addr=第二次返回的是連線那台機器的ip位址和埠號
if cmd == ''quit": #如果收到的cmd命令是quit則退出迴圈
sock.close()
break
result = popen(cmd).read() #將發去給客戶端的命令,取得到的結果賦值給result
sock.send(result) ##傳送得到結果給客戶端
sshclient
#coding:utf-8
from socket import *
#匯入模組
c = socket(af_inet,sock_stream)
#套接字
c.connect(('127.0.0.1',6666))
#連線本機埠
while true:
cmd = raw_input('cmd ?')
#raw_input在python3中是input
c.send(cmd)
#傳送命令給服務端
if cmd == 'exit';
c.close()
break
#如果收到的cmd命令是quit則退出迴圈
data = c.recv(1024)
#將獲得的資料賦值給data
print data
#輸出資料
c.close()
一些思考筆記來自:
i春秋暴走python
玩轉「網路上的芳鄰」之網路配置 一
在前面的兩篇中,我們分析了與 windows 系統 網路上的芳鄰 相關的 名稱註冊 和 名稱解析 工作原理,相信各位對微軟不同時期的 windows 網路上的芳鄰工作原理已有了比較深的了解。本篇要繼續向大家介紹,在各種網路環境中,各 windows 系統該如何配置,才能使網路中的所有 windows...
Socket簡單實現ssh筆記
socket本質上就是在2臺網路互通的電腦之間,架設乙個通道,兩台電腦通過這個通道來實現資料的互相傳遞。我們知道網路 通訊 都 是基於 ip port 方能定位到目標的具體機器上的具體服務,作業系統有0 65535個埠,每個埠都可以獨立對外提供服務,如果 把乙個公司比做一台電腦 那公司的總機號碼就相...
python socket簡單實現SSH伺服器端
server import socket,os server socket.socket server.bind localhost 9999 server.listen while true conn,addr server.accept while true data conn.recv 102...