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