# -*-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', '')
Python os模塊常用函數使用方法大全
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.