使用前 import os導入模塊
os模塊:
os.sep 可以取代操作系統特定的路徑分割符
os.linesep 字符串給出當前平臺使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n' 而Mac使用'\r'。
os.name 字符串指示你正在使用的平臺。比如對于Windows,它是'nt',而對于Linux/Unix用戶,它是'posix'
os.getcwd() 函數得到當前工作目錄,
os.getenv()和os.putenv() 函數分別用來讀取和設置環境變量。
os.listdir(dirname): 列出dirname下的目錄和文件
os.remove() 函數用來刪除一個文件。
os.curdir: 返回但前目錄('.')
os.chdir(dirname): 改變工作目錄到dirname
getatime(path):文件或文件夾的最后訪問時間,從新紀元到訪問時的秒數
getmtime(path):文件或文件夾的最后修改時間
getctime(path):文件或文件夾的創建時間
os.path模塊:
os.path.isfile()和os.path.isdir()函數分別檢驗給出的路徑是一個文件還是目錄,返回bool值
os.path.exists()函數用來檢驗給出的路徑是否真地存在 返回bool
os.path.getsize(name):獲得文件大小,如果name是目錄返回0L 返回long 單位是字節
os.path.abspath(name):獲得絕對路徑
os.path.normpath(path):規范path字符串形式, 結果一般情況下把/變為//,
os.path.split(name):將name分割成路徑名和文件名,結果為(路徑名,文件名.文件擴展名)(事實上,如果你完全使用目錄,它也會將最后一個目錄作為文件名而分離,同時它不會判斷文件或目錄是否存在)
os.path.splitext(filename):分離文件名與擴展名 結果為(filename,擴展名) 如果參數為一個路徑 則返回(路徑,'')
os.path.join(path,name): 連接目錄與文件名或目錄 結果為path/name
os.path.basename(path):返回文件名 實際為把path的最后一個"/"分割,返回后者。不管參數是一個路徑還是文件 與os.path.split(name)相同 不同之處后者返回兩個值得元組
os.path.dirname(path): 返回文件路徑 實際為把path的最后一個"/"分割,返回前者。不管參數是一個路徑還是文件
os.system()函數用來運行shell命令
os模塊包裝了不同操作系統的通用接口,使用戶在不同操作系統下,可以使用相同的函數接口,返回相同結構的結果。
os.name:返回當前操作系統名稱('posix', 'nt', 'os2', 'mac', 'ce' or 'riscos')
os中定義了一組文件、路徑在不同操作系統中的表現形式參數,如
os.sep(文件夾分隔符,windows中是 \ )
os.extsep(擴展名分隔符,windows中是 . )
os.pathsep(目錄分隔符,windows中是 ; )
os.linesep(換行分隔符,windows中是 \r\n )
os中有大量文件、路徑操作的相關函數,如:
listdir(path):列舉目錄下的所有文件
makedir(path):創建文件夾,注:創建已存在的文件夾將異常
makedirs(path):遞歸式的創建文件夾,注:創建已存在的文件夾將異常
remove(filename):刪除一個文件
rmdir(path):刪除一個文件夾,注:刪除非空的文件夾將異常
removedirs(path):遞歸的刪除文件夾,直到有一級的文件夾非空,注:文件夾路徑不能以''結束
rename(src,dst):給文件或文件夾改名(可以改路徑,但是不能覆蓋目標文件)
renames(src,dst):遞歸式的給文件或文件名改名
walk(path):列舉path下的所有文件、文件夾
os中與進程相關的操作,如:
execl(path):運行一個程序來替代當前進程,會阻塞式運行
_exit(n):退出程序
startfile(filename):用與文件關聯的程序運行,關聯程序打開后,立即返回
system(cmd):運行一個程序或命令,會立即返回,并在cmd執行完成后,會返回cmd退出代碼
os.path:在不同的操作系統中調用不同的模塊,是一個可import的模塊,這個模塊中提供很多有用的操作:
abspath(path):返回path的絕對路徑,若path已經是絕對路徑了,則保持。
basename(path):返回path中的文件名。
commonprefix(list):返回list中的統一前綴,用于獲得一組字符串的左起相同的內容
dirname(path):返回path中的文件夾部分,結果不包含''
exists(path):文件或文件夾是否存在
getatime(path):文件或文件夾的最后訪問時間,從新紀元到訪問時的秒數
getmtime(path):文件或文件夾的最后修改時間
getctime(path):文件或文件夾的創建時間
getsize(path):文件或文件夾的大小,若是文件夾返回0
isabs(path):返回是否是絕對路徑
isfile(path):返回是否是文件路徑
isdir(path):返回是否是文件夾路徑
islink(path):返回是否是快捷方式
join(path1,path2,...):將path進行組合,若其中有絕對路徑,則之前的path將被刪除
normcase(path):轉換路徑中的間隔符
normpath(path):轉換路徑為系統可識別的路徑
realpath(path):轉換路徑為絕對路徑
split(path):將路徑分解為(文件夾,文件名)
splitext(path):將路徑分解為(其余部分,.擴展名),若文件名中沒有擴展名,擴展名部分為空字符串
在操作與系統不支持的對象時,拋出OSError異常。
判斷文件夾是否存在:
import os
os.path.exists('d:/assist')
True
os.path.exists('d:/assist/getTeacherList.py')
True
os.path.isfile('d:/assist')
False
os.path.isfile('d:/assist/getTeacherList.py')
True
os.makedirs('d:/assist/set')
os.path.exists('d:/assist/set')
True
判斷文件夾是否為空:
使用os.listdir)命令
workpath='目錄'
if not os.list(workpath):
print '目錄為空'
遍歷文件夾
參考
http://laocao.blog.51cto.com/480714/525140
def Test2(rootDir):
... for lists in os.listdir(rootDir):
... path = os.path.join(rootDir, lists)
... print path
... if os.path.isdir(path):
... Test2(path)
...
Test2("F:\zr")
??