1. 程式人生 > 實用技巧 >第十二天 第十章 目錄操作

第十二天 第十章 目錄操作

# os和os.path模組
import os
print('os.getcwd():獲取當前目錄  ',os.getcwd())
print('os.name:獲取作業系統型別  ',os.name)
print('os.linesep:獲取當前作業系統的換行符  ',os.linesep)
print('os.sep:獲取當前路徑分隔符  ',os.sep)
print('os.listdir(path):返回指定路徑下的檔案和目錄資訊,引數可空  ',os.listdir('D:/零基礎學python/[個人筆記]'))
print('os.mkdir(path [,mode]):建立目錄  
',os.mkdir('d:/111')) print('os.rmdir(path):刪除目錄 ',os.rmdir('d:/111')) print('os.makedirs(path1/path2...[,mode]):建立多級目錄 ',os.makedirs('d:/222/333/444.py')) print('os.removedirs(path1/path2...):刪除多級目錄 ',os.removedirs('d:/222/333/444.py')) print('os.chdir(path):設定path為當前工作目錄 ',os.chdir(r'D:\零基礎學python\[個人筆記]
')) lmulu = os.walk('d:/') # for i in lmulu: # print(i) print('walk(top[,topdown[,onerror]]):遍歷目錄樹,返回一個元組,包括路徑名/目錄列表/檔案列表三個元素 ',lmulu) print('os.path.abspath(path):用於獲取檔案或目錄的絕對路徑' ,os.path.abspath('')) print('os.path.exists(path):判斷目錄或者檔案是否存在,返回布林值 ',os.path.exists('D:/零基礎學python/[個人筆記]')) print('
os.path.join(path,name):將目錄和目錄或者檔名拼接起來 ',os.path.join('d:/222/','234.py')) print('os.path.splitext():分離檔名和副檔名 ',os.path.splitext('d:/aaa/bbb/ccc/good.avi')) print('os.path.basename(path):從一個目錄中提取檔名 ',os.path.basename('d:/aaa/bbb/ccc/good.avi')) print('os.path.dirname(path):提取路徑,不包括檔名 ',os.path.dirname('d:/aaa/bbb/ccc/good.avi')) print('os.path.isdir(path):用於判斷是否有效路徑 ',os.path.isdir('d:/aaa/bbb/ccc/good.avi')) # 路徑 # 相對路徑:依賴於當前工作目錄的。即該檔案所在的位置,可以直接引用同級目錄或上下級目錄的路徑。 print('當前目錄為D:\python\[個人筆記]:',os.getcwd()) print('那麼我用“with open("demo\\demo.txt") as file”裡的"demo\demo.txt"就是相對路徑') # 絕對路徑:不依賴於當前工作目錄。 print('用“os.path.abspath("demo\\demo.txt")”可以獲得絕對路徑:',os.path.abspath('demo.py')) # 拼接路徑:將多個路徑拼接到一起組成一個新的路徑。 print("用“os.path.join(path1[,path2[,...]])”拼接:",os.path.join('D:\\hello\\world','it','me.py')) # 不使用“+”拼接路徑是因為在不同的系統,它們的路徑分隔符是不同的。 # 如果指定目錄有多級,而且最後一級的上級目錄中有不存在的,則丟擲FileNotFoundError異常,可用建立多級目錄或遞迴呼叫mkdir函式實現。 # def mkdir(path): # if not os.path.isdir(path): # mkdir(os.path.split(path)[0]) # else: # return # os.mkdir(path) # myPath = "D:/mr/test/" # mkdir(myPath) # # with open(os.path.join(myPath,'demo.py'),'w') as file: # file.write('hello world') # 建立多級目錄的命令:os.makedirs()用的就是遞迴方法。 # rmdir()函式只能刪除空的目錄,如果想要刪除非空目錄,則需要使用python內建的標準模組shutil的rmtree()函式實現。 # import shutil # shutil.rmtree('D:/mr') # 遍歷目錄:os.walk(top[,topdown][,onerror][,followlinks]) # top:欲遍歷的根目錄 # topdown:可選引數,遍歷順序,True表示自上而下遍歷(即先遍歷根目錄);False表示自下而上遍歷(即先遍歷最後一級子目錄);預設為True # oneerror:可選引數,指定錯誤的處理方式,預設忽略 # followlinks: # 返回值:返回包含3個元素的元組生成器,dirpath是當前遍歷的路徑;dirnames是當前路徑下的子目錄;filenames是當前路徑下包含的檔案 path = 'D:\\零基礎學python' print('%s%s%s'%('',path,'】 目錄下包括的檔案和目錄:')) for root,dirs,files in os.walk(path,topdown=True): for name in dirs: print('+',os.path.join(root,name)) for name in files: print(' -',os.path.join(root, name))