os
os 模塊在運維工作中是很常用的一個模塊。通過os模塊調用系統命令。os模塊可以跨平台使用。
在 import os
的時候,建議使用import os
而非from os import *
。這樣可以避免os.open()
不會覆蓋內置函數open()
.
os.name()
判斷系統類型
import os
print os.name
# linux和Unix系統會返回`posix`
# windows 系統會返回`nt`
os.system()
執行系統命令的模塊,返回命令執行的狀態碼,開啟一個子shell執行命令
import os
cmd = 'ifconfig'
retval = os.system(cmd)
print retval
# 結果為 0
# 表示命令執行成功,否則為失敗
os.popen()
popen
也是去執行一個命令,不過相比system(cmd),os.popen(command [, mode='r' [, bufsize]]),參數更多,而且是開啟一個管道去執行。
- cmd - 執行的命令
- mode - 模式權限可以是'r'(默認)或'w'
- buffering - 0意味着無緩沖;1意味着行緩沖;其它正值表示使用參數大小的緩沖(大概值,以字節為單位)。負的bufsize意味着使用系統的默認值,一般來說,對於tty設備,它是行緩沖;對於其它文件,它是全緩沖。如果沒有改參數,使用系統的默認值。(不明白????)
import os
cmd = 'mkdir nwdir'
a = os.popen(cmd)
print a
print type(a)
#返回結果
#<os._wrap_close object at 0x105af0860>
#<class 'os._wrap_close'>
os.listdir(path)
打印指定目錄的文件,返回一個列表
import os
a = os.listdir('/tmp')
print a
os.getcwd()
返回當前絕對路徑,返回類型為str
import os
a = os.getcwd()
print a
os.chdir(path)
改變當前路徑
import os
print os.getcwd()
os.chdir(/tmp/aaa)
print os.getcwd()
os.mkdir()
mkdir(path [, mode=0755])
默認權限是0755
如果目錄已存在,會異常OSError
os.remove(path)
刪除文件,只能刪除文件
os.rmdir(path)
刪除目錄,只能刪除目錄
os.path
該模塊主要是針對路徑的操作。
os.path.abspath(path)
返回絕對路徑,主要有引號
import os
print os.path.abspath('.')
#結果
D:\Python\project
os.path.basename(path)
返回文件名,類似linux
中的basename
命令
import os
print os.path.basename('D:\Python\project')
#結果
project
os.path.dirname(path)
返回文件路徑,不包含文件名,類似linux
中的dirname
命令
import os
print os.path.dirname('D:\Python\project')
#結果
D:\Python
os.path.exists(path)
判斷路徑是否存在,存在返回True
,不存在返回False
a = 'D:\Python\project11111'
print os.path.exists(a)
#結果
False
類似這種:
命令 | 說明 |
---|---|
os.path.isfile | 判斷是否是文件 |
os.path.isdir | 判斷是否是目錄 |
os.path.isline | 判斷是否是個鏈接文件 |
os.path.ismount | 判斷是否是掛載點 |
os.path.isabs | 判斷是否是絕對路徑 |
os.path.join(path1,path2)
把 path1、path2文件或目錄合並成一個路徑