Python os模塊常用函數使用方法大全

# -*-coding: utf-8 -*-
import os
import shutil

'''
OS模塊簡單的來說它是一個Python的系統編程的操作模塊,可以處理文件和目錄這些我們日常手動需要做的操作。
'''

#------------------------- 常用的os模塊函數 --------------------------

#-------------os.sep----------------
'''
os.sep 可以取代操作系統特定的路徑分割符。
Windows系統通過是“\”,Linux類系統如Ubuntu的分隔符是“/”,而蘋果Mac OS系統中是“:”。
使用os.sep代替系統分隔符可以實現跨平臺,不用擔心不能移植

Linux下一個路徑,  '/usr/share/python' 那麼上面的 os.sep 就是 ‘/’
Windows下一個路徑,  '\usr\share\python' 那麼上面的 os.sep 就是 '\'。

上面那個路經寫成 os.sep+'usr'+os.sep+'share'+os.sep+'python', 系統就會自動替換成當前系統的路徑分割符,不用人爲修改
'''
strPath = os.sep + 'usr' + os.sep + 'share' + os.sep + 'python'
print(strPath)
#/usr/share/python

#-------------os.linesep----------------
'''
os.linesep 字符串給出當前平臺使用的行終止符
#Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
'''
str1 = 'hello' + os.linesep + 'world' + os.linesep
print(str1)
#hello
#world
#

#-------------os.name----------------
'''
os.name 輸出字符串指示正在使用的平臺。如果是window 則用'nt'表示,對於Linux/Unix用戶,它是'posix'。
'''
print(os.name)
#posix


#-------------os.system()----------------
'''
os.system() 運行shell命令。
'''
#os.system('cmd') #啓動dos

#-------------os.getcwd()----------------
'''
os.getcwd() 函數得到當前工作目錄,即當前Python腳本工作的目錄路徑。
'''
print(os.getcwd())
#/Users/xxx/Documents/Python

#-------------os.chdir(path)----------------
'''
os.chdir(path) 改變當前路徑到path路徑中,即創建生成文件,操作文件的目錄。
'''
#os.chdir(r'/Users/xxx/Documents') #設爲目錄/Users/xxx/Documents

#-------------os.listdir(path)----------------
'''
os.listdir() 返回指定目錄下的所有文件和目錄名。
path: 路徑名
'''
print(os.listdir(os.getcwd()))
#['.DS_Store', '.idea', 'class_test.py', 'fileDir', 'os_test.py', 'os_test.py', 'hello.txt', 'str_test.py']

#-------------os.mkdir(path, mode=0777)----------------
'''
os.mkdir(path) 創建一個文件夾
path: 路徑
mode: 操作權限

產生異常的可能原因:
(1) 路徑不存在
(2) 同名文件夾已存在時
(3) 驅動器不存在
(4) 磁盤已滿
(5) 磁盤是隻讀的或沒有寫權限
'''
os.mkdir('fileDir')

#-------------os.rmdir(path)----------------
'''
os.rmdir(path) 刪除一個文件夾
path: 路徑

產生異常的可能原因:
(1) path 不存在
(2) path 子目錄中有文件或下級子目錄
(3) 沒有操作權限或只讀
'''
os.rmdir('fileDir')

#-------------os.makedirs(path, mode=0777)----------------
'''
os.makedirs(path) 創建多層文件夾
path: 路徑
mode: 操作權限

產生異常的可能原因:
(1) 磁盤路徑不存在, 如 K:\dir1\dir2 K盤不存在時
(2) 同名文件夾已存在時
(3) 驅動器不存在
(4) 磁盤已滿
(5) 磁盤是隻讀的或沒有寫權限
'''
os.makedirs('fileDir1/fileDir2/fileDir3')

#-------------os.rmtree(path)----------------
'''
os.rmtree(path) 刪除一個文件夾以及內部的文件夾及文件
path: 路徑
注意要引入: import shutil

產生異常的可能原因:
(1) path 不存在
(2) path 子目錄中有文件或下級子目錄
(3) 沒有操作權限或只讀
'''
shutil.rmtree('fileDir1')

#-------------創建文件----------------
'''
直接以'w'寫的方式打開關閉文件即可
'''
filename = 'hello.txt'
f = open(filename, 'w')
f.close()

#-------------os.remove(filename)----------------
'''
os.remove(filename) 刪除一個文件,非文件夾
filename: 文件名(帶後綴名)

產生異常的可能原因:
(1) path 不存在(不管是文件還是文件夾)
(2) 驅動器不存在
(3) 磁盤已滿
(4)磁盤是隻讀的或沒有寫權限
'''
os.remove('hello.txt')

#------------------------- 常用的os模塊函數 之 path模塊 --------------------------
#-------------os.path.basename(path)----------------
'''
os.path.basename(path)  返回傳入路徑的最後一個的文件名
'''
print(os.getcwd())
#/Users/xxx/Documents/Python
print(os.path.basename(os.getcwd()))
#Python

#-------------os.path.dirname(path)----------------
'''
os.path.dirname(path)  返回文件夾所在路徑
'''
print(os.path.dirname(os.getcwd()))
#/Users/xxx/Documents

#-------------os.path.abspath(path)----------------
'''
os.path.abspath(path)  返回絕對路徑
'''
print(os.path.abspath('os_test.py'))
#/Users/xxx/Documents/Python/os_test.py

#-------------os.path.isabs(path)----------------
'''
os.path.isabs(path)  是否爲絕對路徑
'''
print(os.path.isabs('os_test.py'))
#False
print(os.path.isabs('../Python/os_test.py'))
#False
print(os.path.isabs(os.getcwd()+'os_test.py'))
#True

#-------------os.path.commonprefix(path)----------------
'''
os.path.commonprefix(path)  返回list(多個路徑)中,所有path共有的最長的路徑
'''
print(os.path.commonprefix(['/Users/xxx/Documents/Python/', \
                            '/Users/xxx/', \
                            '/Users/xxx/Documents']))
#/Users/xxx/

#-------------os.path.exists(path)----------------
'''
os.path.exists(path)  該路徑是否存在未被破壞, 是:返回True, 否:返回False
'''
print(os.path.exists(os.getcwd()))
#True
print(os.path.exists(os.getcwd()+'hhhh'+os.sep))
#False

#-------------os.path.getsize(path)----------------
'''
os.path.getsize(path)  返回文件大小,如果文件不存在就返回錯誤
'''
print(os.path.getsize('os_test.py'))
#5503
print(os.path.getsize(os.getcwd()))
#442
#print(os.path.getsize(os.getcwd()+'hhhh'+os.sep))
#OSError: [Errno 2] No such file or directory:


#-------------os.path.isfile(path)----------------
'''
os.path.isfile(path)  是否爲文件, 找不到也返回False
'''
print(os.path.isfile(os.getcwd()))
#False
print(os.path.isfile('os_test.py'))
#True

#-------------os.path.isdir(path)----------------
'''
os.path.isdir(path)  是否爲文件夾, 找不到也返回False
'''
print(os.path.isdir(os.getcwd()))
#True
print(os.path.isdir('os_test.py'))
#False

#-------------os.path.join(path1[, path2[, ...]])----------------
'''
os.path.join(path1[, path2[, ...]])  把文件和路徑合成一個名, 用來拼接全名
'''
print(os.path.join(os.getcwd(), 'joindir','os_test.py'))
#/Users/xxx/Documents/Python/joindir/os_test.py

#-------------os.path.realpath(path)----------------
'''
os.path.realpath(path)  返回真是路徑
'''
print(os.path.realpath('os_test.py'))
#/Users/xxx/Documents/Python/os_test.py

#-------------os.path.samefile(path1, path2)----------------
'''
os.path.samefile(path)  判斷兩個文件或者路徑是否相同
'''
print(os.path.samefile('os_test.py', 'tuple_test.py'))
#False
print(os.path.samefile('os_test.py', 'os_test.py'))
#True
print(os.path.samefile(os.getcwd(), os.path.dirname(os.getcwd())))
#False
print(os.path.samefile(os.getcwd(), os.getcwd()))
#True

#-------------os.path.split(path)----------------
'''
os.path.split(path)  把路徑分割成dirname和basename,返回一個元組
'''
print(os.path.split(os.path.abspath('os_test.py')))
#('/Users/xxx/Documents/Python', 'os_test.py')

#-------------os.path.splitext(path)----------------
'''
os.path.splitext(path)  分割文件擴展名,返回路徑名和文件擴展名的元組
'''
print(os.path.splitext(os.path.abspath('os_test.py')))
#('/Users/xxx/Documents/Python/os_test', '.py')
print(os.path.splitext(os.getcwd()))
#('/Users/xxx/Documents/Python', '')


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章