python學習_24(目錄)
阿新 • • 發佈:2018-11-06
os.curdir 返回當前目錄 >>> os.curdir '.' os.pardir 返回當前目錄的父目錄 >>> os.pardir '..' #切換到上級目錄 >>> os.chdir(os.pardir) >>> os.getcwd() 'E:\\' os.getcwd() 獲取當前工作目錄 >>> os.getcwd() 'E:\\' >>> os.chdir("個人") >>> os.getcwd() 'E:\\個人' os.chdir(path) 切換到指定工作目錄 >>> os.chdir("e:\\python") >>> os.getcwd() 'e:\\python' os.name 獲取當前使用的作業系統型別(其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix) >>> os.name 'nt' os.mkdir(path [, mode=0777]) 生成單級目錄;相當於linux中的mkdir dirname >>> os.mkdir("1212") >>> os.chdir("1212") >>> os.getcwd() 'e:\\python\\1212' os.makedirs(path [, mode=0777]) 可生成多層遞迴目錄,父目錄如果不存在,遞迴生成。 >>> os.makedirs("e:\\e\\e") >>> os.chdir("e:\\e\\e") >>> os.getcwd() 'e:\\e\\e' os.removedirs(path) 若目錄為空,則刪除,並遞迴到上一級目錄,如若也為空,則刪除,如果目錄不為空則不刪除 >>> os.removedirs("e:\\e\\e") os.rmdir(path) 刪除單級非空目錄,若目錄不為空則無法刪除,會報錯 >>> os.mkdir("11111") >>> os.rmdir("11111") os.listdir(path) 列出目錄下的所有檔案和子目錄,包括隱藏檔案和目錄,返回包含檔案和子目錄的列表 >>> os.listdir("e:\\python") ['0.txt', '1.txt', '10.txt', '1008.txt', '101401.txt', '1212', '2.txt', '3.txt', '4.txt', ' ess.py', 'process.pyc', 'redata.txt', 'restful.py', 'singleton.py', 'test.py', 'w.txt'] os.remove(filePath) 刪除一個檔案,只能刪除檔案不能刪除目錄,filePath為檔案路徑,可以為絕對路徑,也可以為相對路徑 >>> os.chdir("e:\\python\\") >>> os.remove("1.txt") os.rename(oldname, newname) 重新命名檔案和目錄 >>> os.rename("2.txt","232323.txt")#檔案 >>> os.rename("e:\\python2","e:\\python2222")#目錄 os.stat(path) 獲取檔案的一些屬性值 >>> os.stat("3.txt") os.stat_result(st_mode=33206, st_ino=281474976711192, st_dev=105876, st_nlink=1, st_uid=0, st_gid=0, st_size=201, st_atime=1534340733, st_mtime=1539184690, st_ctime=1534340733) st_size 檔案大小,位元組 st_atime 檔案的訪問時間 st_mtime 檔案的修改時間啊 st_ctime 檔案的建立時間 訪問屬性值 >>> os.stat("3.txt").st_ctime 1534340733.0906618 os.utime(path[, (atime, mtime)]) 修改檔案訪問時間、修改時間 #encoding =utf-8 import os os.utime(r'e:\b.txt',(1375448978,1369735977)) fileinfo = os.stat(r'e:\b.txt') print ("access time of b.txt : %s \n modified time of b.txt: %s" % (fileinfo.st_atime,fileinfo.st_mtime)) os.system (command) 執行系統命令 >>> os.system("dir e:\\python") os.linesep 作業系統的換行分隔符 >>> os.linesep '\r\n' os.pathsep 路徑之間分割符 如:c:\\python;d:\\python >>> os.pathsep ';' os.sep 作業系統的路徑分割符,如e:\\python\\3.txt >>> os.sep '\\' os.access(path, mode) 輸出檔案許可權模式 import os with open(r"c:\gloryroadtest.txt","w") as f:pass print (os.access(r'c:\gloryroadtest.txt', os.W_OK)) print (os.access(r'c:\gloryroadtest.txt', os.R_OK)) print (os.access(r'c:\gloryroadtest.txt', os.X_OK)) W寫,R讀,X可執行, os.chmod(path, mode) Linux上會有效,設定檔案許可權為可讀、可寫和可執行 >>> os.chmod("e:\\python\\3.txt",777) os.popen(command [, mode='r' [, bufsize]]) 執行shell命令,並返回一個檔案物件。然後通過操作檔案的方法去操作這個 檔案物件。 >>> for v in os.popen("dir"): ... print(v) ... os.walk(top,topdown=True,onerror=None, followlinks=False) ➢top:表示需要遍歷的目錄樹的路徑。- 根目錄下的每一個資料夾(包含它自己), 產生3-元組 (dirpath, dirnames, filenames)【資料夾路徑, 資料夾名字, 檔名】 ➢topdown的預設值是“True”,表示首先返回目錄樹下的檔案,然後遍歷目錄樹下的 子目錄。值設為False時,則表示先遍歷目錄樹下的子目錄,返回子目錄下的檔案,最後 返回根目錄下的檔案。 topdown=False 從最底層目錄開始遍歷 topdown=True 從最頂層目錄開始遍歷 ➢onerror的預設值是“None”,表示忽略檔案遍歷時產生的錯誤。如果不為空,則提 供一個自定義函式提示錯誤資訊後繼續遍歷或丟擲異常中止遍歷。 ➢該函式返回一個列表,列表中的每一個元素都是一個元組,該元組有3個元素,分別表 示每次遍歷的路徑名,目錄列表和檔案列表。 ➢預設情況下,os.walk 不會遍歷軟連結指向的子目錄,若有需要請將followlinks設定為 true >>> for root,dirs,files in os.walk("e:\\testdemo"): ... for dir in dirs: ... print(dir) ... for file in files: ... print(file) ... root,dirs,files是 一個三元組,root,為資料夾路徑,dirs為資料夾下的子目錄列表,files為資料夾路徑下的檔案列表,每一個資料夾都會產生自己的三元組,針對每個資料夾都會遍歷下面的子目錄和檔案; #encoding=utf-8 import os for root,dirs,files in os.walk("e:\\python"): print("當前目錄:",root) for dir in dirs: print("目錄名:",dir) for file in files: print("檔名:",os.path.join(root,file)) os.path.abspath(path) 返回絕對路徑,但是檔案不一定存在 >>> os.getcwd() 'e:\\python' >>> os.path.abspath("3.txt") 'e:\\python\\3.txt' os.path.split(path) 將path分割成路徑名和檔名,返回一個元組,如果path是一個路徑不包含命名,會將最後一個目錄作為檔名分離 >>> os.path.split("e:\\python\\3.txt") ('e:\\python', '3.txt')#元組 >>> os.path.split("e:\\python") ('e:\\', 'python') os.path.splitext(path) 分離檔名與副檔名,返回一個元組 >>> os.path.splitext("e:\\python\\3.txt") ('e:\\python\\3', '.txt') os.path.dirname(path) 返回path的目錄路徑,就是os.path.split(path)的第一個元素 >>> os.path.dirname("e:\\python\\3.txt") 'e:\\python' os.path.basename(path) 返回path中的檔名,就是os.path.split(path)的第二個元素 >>> os.path.basename("e:\\python\\3.txt") '3.txt' os.path.exists(path) 判斷path指定的目錄或檔案是否存在 >>> os.path.exists("e:\\python") True >>> os.path.exists("e:\\python\\3.txt") True os.path.isabs(path) 判斷path是否是絕對路徑 >>> os.path.isabs("e:\\python\\3.txt") True os.path.isfile(path) 判斷path是否是檔案 >>> os.path.isfile("e:\\python\\3.txt") True >>> os.path.isfile("e:\\python") False os.path.isdir(path) 判斷path是否目錄 >>> os.path.isdir("e:\\python\\3.txt") False >>> os.path.isdir("e:\\python") True os.path.normpath(path) 將path轉換為規範的路徑 >>> os.path.normpath("e:/python\3.txt") 'e:\\python\x03.txt' os.path.join(a, *p) 連線兩個或更多的路徑名,中間以“\”分隔,如果所給的引數中都是絕對路徑名,那先給的絕對路徑將會被丟棄 >>> os.path.join("e:\\python","test","3.txt") 'e:\\python\\test\\3.txt' #兩個都是絕對路徑e:\\python被丟棄 >>> os.path.join("e:\\python","e:\\test") 'e:\\test' os.path.getatime(filename) 返回檔案的最後訪問時間,返回時間戳 >>> os.path.getatime("e:\\python\\3.txt") 1534340733.0906618 #coding=utf-8 import os import time #獲取檔案最後訪問時間 lastTime = os.path.getatime(r"e:\python\a.py") print (lastTime) #將時間戳轉成時間元組 formatTime = time.localtime(lastTime) print (formatTime) #格式化時間元組為時間字串 print (time.strftime("%Y-%m-%d %H:%M:%S", formatTime)) os.path.getctime(filename) 返回檔案的建立時間,返回時間戳 >>> os.path.getctime("e:\\python\\3.txt") 1534340733.0906618 os.path.getmtime(filename) 返回檔案的最後修改時間,返回時間戳 >>> os.path.getmtime("e:\\python\\3.txt") 1539184690.78357 os.environ 獲取當前的環境變數 >>> os.environ environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\Ad )': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\ : 'NO', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\Administrator.USER-2018 ER_OF_PROCESSORS': '4', 'OS': 'Windows_NT', 'PATH': 'd:\\ProgramData\\An nda3\\Library\\bin;d:\\ProgramData\\Anaconda3\\Scripts;C:\\Python36\\Scr \Library\\usr\\bin;d:\\ProgramData\\Anaconda2\\Library\\bin;d:\\ProgramD v1.0\\;C:\\Python27;C:\\Python27\\Scripts', 'PATHEXT': '.COM;.EXE;.BAT;. del 37 Stepping 5, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REV x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PROMPT': '$P$G', 'PSMODULEP TEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\Windows', 'TEMP': 'C:\\Users\\ADMINI E': 'Administrator', 'USERPROFILE': 'C:\\Users\\Administrator.USER-20180 ilogfile.log', '_DFX_INSTALL_UNSIGNED_DRIVER': '1'})