1. 程式人生 > >Python之文件操作:os模塊

Python之文件操作:os模塊

std sts linu dir for 隱藏文件 權限 獲取文件 統一

Python os 模塊提供了一個統一的操作系統接口函數 一、對於系統的操作 1、os.name 當前使用平臺 其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix 2、os.sep 輸出操作系統的特定的路徑分隔符。Win下為“\”,Linux下為“/” 3、os.pathsep 輸出分格符 輸出用於分割文件路徑的字符串。 Windows下是‘;‘ 4、os.linesep 換行符 輸出當前平臺是用的行終止符,win下為“\r\n”,Linux下為“\n”,Mac使用‘\r‘。 5、os.environ 獲取系統環境變量path 6、os.system(‘dir c:\\‘) 直接執行系統命令 7、os.popen() 執行一個系統命令,把執行結果存到文件句柄中 dirList=os.popen(‘dir d:\\tmp‘) for i in dirList: print i 二、對於目錄的操作 1、os.getcwd() 獲取當前的工作目錄,即當前Python腳本工作的目錄路徑。 結果:E:\python\0507 2、os.chdir(‘d:\\‘) 修改當前的工作目錄 3、os.curdir 返回當前目錄 4、os.pardir 目錄切換到父目錄(上一級目錄) 三、對文件的操作 1、os.listdir(‘e:\\tmp‘) 列出指定目錄下的所有文件和子目錄,包括隱藏文件或目錄,並以列表形式返回。 2、os.rename(‘e:\\tmp\\1.txt‘,‘e:\\tmp\\1new.txt‘) 修改文件名 3、os.stat(‘e:\\tmp\\02.txt‘) 獲取文件的生命周期中的各個時間 4、os.utime(path[, (atime, mtime)]) 修改文件的時間屬性 設置文件的access and modified time為給定的時間 如果未指定atime和mtime參數,修改的時間將會是當前的時間。 5、os.access() 輸出文件是否有寫的權限: print os.access(fileName,os.W_OK) print os.access(fn,os.R_OK) 文件是否有讀的權限 print os.access(fn,os.X_OK) 文件是否有執行的權限 四、os.path 1、os.path.exists(path) 返回當前的目錄或者文件是否存在 判斷path是否存在,如果存在返回True,否則返回False。 2、os.path.isabs(path) 判斷路徑是否為絕對路徑 判斷path是否是絕對路徑,如果是返回True,否則返回False。 3、os.path.isfile(path) 判斷是否是文件 判斷path是否是文件,如果是返回True,否則返回False。 4、os.path.isdir(path) 判斷是否是目錄 判斷path是否是目錄,如果是目錄返回True,否則返回False。 5、os.path.getsize(path): 單位是字節 返回文件或者目錄的大小。獲得文件大小,如果name是目錄返回0L;如果name代表的目錄或文件不存在,怎會報WindowsError異常。 6、os.path.abspath(path) 獲取絕對路徑,(但這個路徑不一定是真實存在的路徑) eg: print os.path.abspath(‘d:\\tmp\\test13.txt‘) print os.path.abspath(‘test13.txt‘)#返回當前執行目錄下的文件名的路徑,文件沒有的時候也會返回 print os.getcwd() 結果: d:\tmp\test13.txt D:\python\0512\test13.txt D:\python\0512 7、os.path.normpath(path) 把path轉換為標準的路徑。用於解決跨平臺問題 五、從路徑中獲取盤符,文件名,擴展名,目錄 1、os.path.split(path) 對文件路徑做分割,把最後一個\\後面的文件會目錄分割出來 將path分割成目錄和文件名(事實上,如果你完全使用目錄,它也會將最後一個目錄作為文件名而分離,同時它不會判斷文件或目錄是否存在),並存於元組中返回。 eg: print os.path.split(‘D:\\tt4\\c12‘) print os.path.split(‘D:\\tt4\\c12\\‘) print os.path.split(‘D:\\tt4\\c12\\t1.txt‘) 結果: (‘D:\\tt4‘, ‘c12‘) (‘D:\\tt4\\c12‘, ‘‘) (‘D:\\tt4\\c12‘, ‘t1.txt‘) 2、os.path.dirname(path) 返回目錄的名稱 返回path的目錄路徑,其實就是os.path.split(path)的第一個元素。 3、os.path.basename(path) 返回文件的名稱 返回path最後的文件名。如果path以/或\結尾,就會返回空值。即os.path.split(path)的第二個元素。 4、os.path.splitext(path) 把路徑和擴展名切分開 print os.path.splitext(‘01.py‘) print os.path.splitext(‘d:\\tmp\\001.txt‘) print os.path.splitext(‘D:\\tt4\\c12‘) 結果: (‘01‘, ‘.py‘) (‘d:\\tmp\\001‘, ‘.txt‘) (‘D:\\tt4\\c12‘, ‘‘) fileName,expandName = os.path.splitext(f) 把路徑和擴展名分開後可以直接賦值給兩個變量,其實得到的是一個元組 5、os.path.splitdrive(path) 拆分驅動器(盤符)和後面的路徑。拆分驅動器和文件路徑,並以元組返回結果;主要針對win有效,Linux元組第一個總是空。 返回結果是元祖 6、os.path.join(path,*paths) 把所有的路徑組合成絕對路徑。連接兩個或更多的路徑名,中間以“\”分隔,如果所給的參數中都是絕對路徑名,那最先給的絕對路徑將會被丟棄。

Python之文件操作:os模塊