前言
我們經(jīng)常會(huì)與文件和目錄打交道,對(duì)于這些操作python提供了一個(gè)os模塊,里面包含了很多操作文件和目錄的函數(shù)。在寫一些系統(tǒng)腳本或者自動(dòng)化運(yùn)維腳本的時(shí)候經(jīng)常會(huì)用到這個(gè) os 庫(kù),所以這里做個(gè)整理,方便需要的時(shí)候或者需要的朋友查找學(xué)習(xí),下面話不多說,來一起看看詳細(xì)的介紹吧。
1、os.sep
獲得當(dāng)前操作系統(tǒng)使用的目錄分隔符,比如 Windows 就會(huì)得到\而 Linux/Unix 就會(huì)得到/
os.name
獲得當(dāng)前使用的操作系統(tǒng),Windows 是 NT 內(nèi)核,所以會(huì)得到nt,而 Linux/Unix 用戶則會(huì)得到posix
2、os.getcwd()
獲得當(dāng)前工作目錄,即當(dāng)前 Python 腳本工作的目錄路徑。
3、os.getenv()
用來獲得環(huán)境變量
1
|
os.getenv( 'PATH' ) |
4、os.environ
可以獲取并修改環(huán)境變量
1
2
3
|
print (os.environ[ 'PATH' ]) os.environ + = 'D:/testdir/bin/' print (os.environ[ "PATH" ]) |
5、os.listdir()
列出某目錄下所有的目錄和文件
1
|
print (os.listdir()) |
6、os.remove()
刪除文件
1
|
os.remove( 'D:/test.file' ) |
7、os.system()
運(yùn)行 Shell 或者 CMD 命令
1
|
os.system( 'ifconfig' ) |
8、os.linesep
獲取當(dāng)前平臺(tái)使用的行終止符。例如,Windows 使用\r\n,Linux 使用\n而 Mac 使用\r。
9、os.path.split()
獲得一個(gè)列表,list[0] 是路徑的,list[1] 是文件名
1
2
3
|
path = 'D:/game/gtav/bin/gtav.exe' print (os.path.split(path)[ 0 ]) print (os.path.split(path)[ 1 ]) |
10、os.path.isfile()
和 os.path.isdir()
判斷路徑是不是文件 / 目錄
1
2
|
print (os.path.isfile( 'D:/game/gtav/bin/gtav.exe' )) print (os.path.isdir( 'D:/game/gtav/bin' )) |
11、os.path.existe()
函數(shù)用來檢驗(yàn)給出的路徑是否真地存在
1
2
3
4
|
path = 'D:\\hadoop-2.6.5\\bin' print (os.path.exists(path)) path = 'D:\\hadoop-2.6.5\\bin\\hadoop' print (os.path.exists(path)) |
12、os.chdir(dirname)
切換工作目錄,相當(dāng)于cd的命令
1
2
|
os.chdir( 'D:/game/gtav/' ) print (os.getcwd()) |
13、os.path.getsize(name)
獲取文件大小,以字節(jié)為單位
1
2
|
size = os.path.getsize( 'D:/iso/debian-8.6.0-amd64-DVD-1.iso' ) print (size / 1024 / 1024 / 1024 , 'GB' ) |
14、os.path.abspath(name)
獲取絕對(duì)路徑,如果在 Python 工作目錄下有一個(gè)文件file.txt,那么我就可以直接open('file.txt'),也可以用該方法獲得其絕對(duì)路徑print(os.path.abspath('file.txt'))。也可以用來規(guī)范路徑字符串print(os.path.abspath('D:/game\gtav\bin/gtav.exe'))
15、os.path.normpath(path)
專門用來規(guī)范路徑
1
2
|
path = 'D:/test/sdf\zfb' print (os.path.normpath(path)) |
16、os.path.splitext()
獲取文件名和擴(kuò)展名
1
2
|
path = '/home/shawn/hello.py' print (os.path.splitext(path)) |
17、os.path.join(path,name)
連接目錄和文件名,可以不用自己添加分隔符,能減少 bug 率提升跨平臺(tái)性
18、os.path.basename(path)
獲取路徑中的文件名
19、os.path.dirname(path)
獲取路徑中的目錄名
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。