在python中執行和操作目錄和文件的操作是通過內置的python OS模塊封裝的函數實現的。
首先導入模塊,並查看操作系統的類型:
>>> import os os.name # 操作系統類型 'nt'
nt,是Windows;posix是Linux或者unix
1、對目錄和文件的操作。
>>> os.path#查看當前工作路徑 <module 'ntpath' from 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\ntpath.py'> >>> os.path.abspath('.')#查看當前工作的絕對路徑 'C:\\Users\\Administrator\\Desktop\\enen\\python' >>> os.path.join('C:\\Users\\Administrator\\Desktop\\enen\\python','dede')#在當前目錄下新建一個文件夾,並將文件路徑顯示出來 'C:\\Users\\Administrator\\Desktop\\enen\\python\\dede' >>> os.mkdir('C:\\Users\\Administrator\\Desktop\\enen\\python\\test')#創建一個目錄 >>> os.rmdir('C:\\Users\\Administrator\\Desktop\\enen\\python\\test')#刪除一個目錄。 >>> #注意,Windows和Linux環境下路徑表示有所差異
2、對目錄文件路徑拆分
>>> os.path.split('C:\\Users\\Administrator\\Desktop\\enen\\python\\test.txt') #對當前文件路徑拆分 ('C:\\Users\\Administrator\\Desktop\\enen\\python', 'test.txt') >>> os.path.split('C:\\Users\\Administrator\\Desktop\\enen\\python\\te.txt')#對當前不存在的文件路徑進行拆分 ('C:\\Users\\Administrator\\Desktop\\enen\\python', 'te.txt') >>>
>>> os.path.splitext('C:\\Users\\Administrator\\Desktop\\enen\\python\\test.txt')#使用splitext進行路徑拆分 ('C:\\Users\\Administrator\\Desktop\\enen\\python\\test', '.txt')
以上注意兩點:a.合並、拆分路徑的函數並不要求目錄和文件要真實存在,它們只對字符串進行操作,例如演示代碼所示。b.使用splitext()進行拆分可以直接得到文件的擴展名。
3、復制文件的函數在os模塊中沒有提供,可以使用shutil模塊中的copyfile()函數進行操作。它是os模塊的補充。有關shutil模塊中函數的調用http://www.jb51.net/article/87984.htm
4、對當前目錄文件進行的篩選:
>>> [x for x in os.listdir('.') if os.path.isdir(x)]#使用列表生成式,並使用if進行判斷,os.listdir可以列出文件和目錄,os.path.isdir()函數判斷某一路徑是否為目錄。 ['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]
>>> [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']#篩選出擴展名是py的所有文件,語法使用很是精巧,對當前拆分的文件路徑進行索引判斷,返回py擴展名的文件。 ['apis.py', 'config.py', 'models.py', 'pymonitor.py', 'test_db.py', 'urls.py', 'wsgiapp.py']
學習廖老師教程做的筆記。
