python os庫有很多和操作系統(tǒng)相關(guān)的功能。
創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對(duì)服務(wù)成都護(hù)欄打樁機(jī)等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場的競爭激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!
其實(shí)不僅僅如此,os庫中還有很多和文件,路徑,執(zhí)行系統(tǒng)命令相關(guān)的。
下面是os模塊常用的方法.
1.os.sep? ? ? ? ? ? ? ? ? ? 可以取代操作系統(tǒng)特定的路徑分割符
2.os.name? ? ? ? ? ? ? ? 字符串指示你正在使用的平臺(tái)。比如對(duì)于Windows,它是'nt',而對(duì)于Linux/Unix用戶,它是'posix'
3.os.getcwd()? ? ? ? ? ? 函數(shù)得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑
4.os.getenv()? ? ? ? ? ? 用來讀取環(huán)境變量
5.os.putenv()? ? ? ? ? ? 用來設(shè)置環(huán)境變量
6.os.listdir()? ? ? ? ? ? ? 返回指定目錄下的所有文件和目錄名
7os.remove()? ? ? ? ? ? 函數(shù)用來刪除一個(gè)文件
8.os.system()? ? ? ? ? ? 函數(shù)用來運(yùn)行shell命令
9.os.linesep? ? ? ? ? ? ? 字符串給出當(dāng)前平臺(tái)使用的行終止符。例如,Windows使用'/r/n',Linux使用'/n'而Mac使用'/r'。
10.os.path.split()? ? ? 函數(shù)返回一個(gè)路徑的目錄名和文件名
11.os.path.isfile()? ? ? 檢驗(yàn)給出的路徑是一個(gè)文件
12os.path.isdir()? ? ? ? 檢驗(yàn)給出的路徑是一個(gè)目錄
13.os.path.existe()? ? 函數(shù)用來檢驗(yàn)給出的路徑是否真地存在
14.os.listdir(dirname) 列出dirname下的目錄和文件
15.os.getcwd()? ? ? ? ? 獲得當(dāng)前工作目錄
16.os.curdir? ? ? ? ? ? ? ? 返回當(dāng)前目錄('.')
17.os.chdir(dirname)? 改變工作目錄到dirname
os.path都是和路徑指定的文件,目錄,和路徑字符串有關(guān)系的函數(shù)
os.path.isdir(name)? ? ? ? ? 判斷name是不是一個(gè)目錄,name不是目錄就返回false
os.path.isfile(name)? ? ? ? ? 判斷name是不是一個(gè)文件,不存在name也返回false
os.path.exists(name)? ? ? ? 判斷是否存在文件或目錄name
os.path.getsize(name)? ? ? 獲得文件大小,如果name是目錄返回0L
os.path.abspath(name)? ? 獲得絕對(duì)路徑
os.path.normpath(path)? ? 規(guī)范path字符串形式
os.path.split(name)? ? ? ? ? 分割文件名與目錄(事實(shí)上,如果你完全使用目錄,它也會(huì)將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會(huì)判斷文件或目錄是否存在)
os.path.splitext()? ? ? ? ? ? ? 分離文件名與擴(kuò)展名
os.path.join(path,name)? ? 連接目錄與文件名或目錄
os.path.basename(path)? 返回文件名
os.path.dirname(path)? ? ? 返回文件路徑
參考:
Python中對(duì)OS模塊的定位是:提供了使用操作系統(tǒng)的工具接口。
如果你想讀寫文件,可以參考o(jì)pen();
如果你想操作文件路徑,參考o(jì)s.path模塊;
如果你想在命令行讀取所有文件的所有行,參考fileinput模塊;
如果你想創(chuàng)建臨時(shí)文件或目錄,參考tempfile模塊;
如果你想更高級(jí)的文件和路徑處理,參考shutil模塊;
內(nèi)置的OSError異常類型,比如在使用os模塊中的函數(shù)接口時(shí),在參數(shù)中提供了無效的文件或路徑,就回報(bào)錯(cuò)os.error。
該變量返回當(dāng)前操作系統(tǒng)的類型,當(dāng)前只注冊(cè)了3個(gè)值:分別是posix , nt , java, 對(duì)應(yīng)linux/windows/java虛擬機(jī)。
在Python中,文件名,命令行參數(shù)和環(huán)境變量都是用字符串類型來表示。
接下來的這些函數(shù)和數(shù)據(jù)提供了當(dāng)前進(jìn)程和用戶的信息狀態(tài)和操作接口。
返回進(jìn)程控制終端的文件名,適用于Unix系統(tǒng)。
返回字符串到環(huán)境變量的映射。
改變當(dāng)前工作目錄到指定的路徑,path為要切換到的新路徑。
通過文件描述符改變當(dāng)前工作目錄。
文件描述符是內(nèi)核為了高效管理已經(jīng)被打開的文件所創(chuàng)建的索引,
進(jìn)程通過文件描述符來訪問文件。 在程序剛啟動(dòng)的時(shí)候默認(rèn)有3個(gè)文件描述符:0(標(biāo)準(zhǔn)輸入),1(標(biāo)準(zhǔn)輸出),2(標(biāo)準(zhǔn)錯(cuò)誤),系統(tǒng)默認(rèn)提供了 0~2的文件描述符,之后的 當(dāng)我們進(jìn)行 open,create等操作的時(shí)候 自動(dòng)添加進(jìn)表
所以int creat(const char * ,mode_t)返回的文件int 就是你所進(jìn)行操作的文件的唯一身份標(biāo)示,
然后你只要拿著這個(gè)ID 然后告訴系統(tǒng)給我找xx, write(int fd,char *buf,int lenght) 通過fd得到準(zhǔn)確文件 然后寫入。
當(dāng)我們新建creat,打開open 之后,得到的fd 是從3開始的 因?yàn)榍懊娴娜齻€(gè)被系統(tǒng)占了在OS X系統(tǒng)下測試 文件描述符表 自增,當(dāng)釋放close之后,fd變成-1,如果再繼續(xù)新建 則填補(bǔ)之前的空缺。
返回當(dāng)前工作目錄。
把字符串類型的文件名翻譯成bytes類型的文件名;os.fsdecode()實(shí)現(xiàn)相反的功能。
返回路徑的文件系統(tǒng)表示。
如果環(huán)境變量中存在key,返回環(huán)境變量key的值,否則返回default的值。
設(shè)置環(huán)境變量key的值為value。
使用當(dāng)前uid/gid檢測對(duì)路徑path是否有訪問權(quán)限。其中,path為要檢測是否有權(quán)限的路徑,mode為權(quán)限類別,值可以為os.F_OK、os.R_OK、os.W_OK、os.X_OK中的一個(gè)或多個(gè);
切換當(dāng)前的工作路徑為path指定的路徑。
設(shè)置路徑path的標(biāo)記為flags,flags為數(shù)字標(biāo)記,多個(gè)flags可以使用or組合。flags可以為以下值或以下值的組合:
更改文件或目錄的權(quán)限。
path -- 文件名路徑或目錄路徑
mode -- 可用以下選項(xiàng)按位或操作生成, 目錄的讀權(quán)限表示可以獲取目錄里文件名列表, 寫權(quán)限表示可以獲取文件并且可以修改內(nèi)容,執(zhí)行權(quán)限表示可以把工作目錄切換到此目錄 ,刪除添加目錄里的文件必須同時(shí)有寫和執(zhí)行權(quán)限 ,文件權(quán)限以用戶id-組id-其它順序檢驗(yàn),最先匹配的允許或禁止權(quán)限被應(yīng)用。
更改路徑的擁有者和group id為uid和gid。如果不修改可以設(shè)置為-1,并且需要超級(jí)用戶權(quán)限來執(zhí)行權(quán)限修改操作。
path -- 設(shè)置權(quán)限的文件路徑
uid -- 所屬用戶ID
gid -- 所屬用戶組ID
更改當(dāng)前進(jìn)程的根目錄為path。
返回當(dāng)前工作目錄。
返回path目錄路徑下的文件列表,列表沒有固定的順序。
創(chuàng)建目錄path。如果目錄已經(jīng)存在,會(huì)拋出異常FileExistsError。
遞歸的目錄創(chuàng)建,遞歸的意思是創(chuàng)建所有到達(dá)葉子目錄的中間目錄。
從原始設(shè)備號(hào)(通常是stat中的st_dev或st_rdev)中提取設(shè)備major號(hào)碼。
從原始設(shè)備號(hào)(通常是stat中的st_dev或st_rdev)中提取設(shè)備minor號(hào)碼。
根據(jù)設(shè)備的major號(hào)碼和minor號(hào)碼組成原始設(shè)備號(hào)。
刪除文件路徑path。如果path指向的是目錄路徑,會(huì)拋出異常IsADirectoryError。如果要?jiǎng)h除目錄,使用rmdir。
遞歸的刪除目錄。與rmdir功能相似,不同的是,如果葉子目錄被刪除之后,removedirs會(huì)連續(xù)的刪除每一層上級(jí)目錄,直到拋出異常(異常會(huì)被忽略,因?yàn)楫惓MǔR馕吨蠈幽夸洖榉强漳夸洠?/p>
重命名文件或路徑src為dst,如果dst已經(jīng)存在,會(huì)拋出異常。
遞歸的重命名文件或目錄。功能與rename類似,不同在于,renames首先創(chuàng)建new路徑(即重命名之后的路徑)的中間路徑,然后創(chuàng)建完整new路徑,最后,會(huì)使用removedirs刪除掉old路徑(實(shí)際上刪除的是old路徑與new路徑不重合的部分)。
重命名文件或路徑src為dst。如果dst是目錄,拋出異常OSError。如果dst是文件且已經(jīng)存在,且用戶具有權(quán)限,dst會(huì)被替換掉。
刪除path目錄。如果path不存在,或者path非空,會(huì)拋出異常FileNotFoundError或OSError。如果要?jiǎng)h除整個(gè)目錄樹,可以使用shutil.rmtree()。
返回path的絕對(duì)路徑,效果等同于使用normpath:normpath(join(os.getcwd(), path))。
返回路徑path的文件名,也就是對(duì)path調(diào)用os.path.split函數(shù)返回的元組的第二個(gè)元素。
paths為一個(gè)序列類型,其中每個(gè)元素表示一個(gè)路徑,函數(shù)返回結(jié)果為每個(gè)元素所表示的路徑的最長公共子路徑。如果paths為空,或者paths同時(shí)包含絕對(duì)路徑和相對(duì)路徑,或者paths同時(shí)包含不同驅(qū)動(dòng)類型的路徑(比如Linux系統(tǒng)的路徑和Windows系統(tǒng)的路徑),則拋出異常ValueError。
list中的每個(gè)元素表示一個(gè)路徑,函數(shù)返回每個(gè)路徑的最長的共有路徑前綴,因?yàn)橛?jì)算方式為逐個(gè)字符進(jìn)行比較,所以可能返回的結(jié)果并非有效的路徑,如果要返回有效路徑,可以使用commonpath。
返回path路徑的目錄部分,也就是對(duì)path調(diào)用os.path.split函數(shù)返回的元組的第一個(gè)元素。
如果path指向的路徑已存在,則返回True,否則返回False。
在Unix和Windows系統(tǒng)中,返回path路徑中的~被替換成用戶的home目錄之后的結(jié)果。
path路徑中的 {name}被環(huán)境變量中對(duì)應(yīng)名稱的值替代。
返回最后一次訪問path的時(shí)間,返回值的格式為一個(gè)float類型的數(shù)值,表示距離epoch基準(zhǔn)時(shí)間1970-01-01 00:00:00的秒數(shù)。如果path表示的路徑不存在或者沒有權(quán)限,拋出異常OSError。
返回最后一次修改path的時(shí)間,返回值的格式為一個(gè)float類型的數(shù)值,表示距離epoch基準(zhǔn)時(shí)間1970-01-01 00:00:00的秒數(shù)。如果path表示的路徑不存在或者沒有權(quán)限,拋出異常OSError。
返回path表示的文件或路徑的大小,以byte字節(jié)為單位。如果path表示的路徑不存在或者沒有權(quán)限,拋出異常OSError。
如果path是絕對(duì)路徑,返回True,否則返回False。
如果path表示的是已存在的文件路徑,返回True。
如果path表示的是已存在的目錄,返回True。
如果path表示的是鏈接,返回True。
判斷path是否為掛載點(diǎn)。
連接一個(gè)或多個(gè)路徑,path和多個(gè)*paths的連接會(huì)使用路徑分隔符。
對(duì)path的字母大小寫進(jìn)行normalize。在Windows系統(tǒng)中,path中的所有字母都轉(zhuǎn)成小寫,并且把正斜杠轉(zhuǎn)成反斜杠。在其他操作系統(tǒng)中,返回path本身。
對(duì)path進(jìn)行normalize,刪除多余的路徑分隔符。
split the path into a pair (head, tail),其中tail是path中最后的部分,并且永遠(yuǎn)不會(huì)含有斜杠,head是除了tail之外的部分。如果path以斜杠結(jié)尾,tail為空;如果path中不包含斜杠,head為空;如果path為空,head和tail都是空。
os模塊中的system()函數(shù)可以方便地運(yùn)行其他程序或者腳本。
語法如下:os.system(command)
其參數(shù)含義如下所示:
command? 要執(zhí)行的命令,相當(dāng)于在Windows的cmd窗口中輸入的命令。如果要向程序或者腳本傳遞參數(shù),可以使用空格分隔程序及多個(gè)參數(shù)。
擴(kuò)展資料
Python在執(zhí)行時(shí),首先會(huì)將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼),然后再由Python Virtual Machine(Python虛擬機(jī))來執(zhí)行這些編譯好的byte code。這種機(jī)制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級(jí)的Virtual Machine。
這里的高級(jí)并不是通常意義上的高級(jí),不是說Python的Virtual Machine比Java或.NET的功能更強(qiáng)大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實(shí)機(jī)器的距離更遠(yuǎn)。或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。
基于C的Python編譯出的字節(jié)碼文件,通常是.pyc格式。
除此之外,Python還可以以交互模式運(yùn)行,比如主流操作系統(tǒng)Unix/Linux、Mac、Windows都可以直接在命令模式下直接運(yùn)行Python交互環(huán)境。直接下達(dá)操作指令即可實(shí)現(xiàn)交互操作。
參考資料來源:51CTO.com:使用os.system函數(shù)運(yùn)行其他程序
案例一:新建一個(gè)txt文件并向文件中寫入數(shù)據(jù)。
代碼與結(jié)果如上圖所示。
案例:os.rename('kitty1.txt',''kitty2.txt')
2.1 輸出結(jié)果:將kitty1文件改為kitty2
2.2 文件解析說明:文件重命名,將test1文件改為test2文件。
案例:os.remove('kitty2.txt')
3.1 輸出結(jié)果:kitty2.txt文件被刪除
3.2 解析說明:刪除文件。
案例:os.mkdir('kitty')
4.1 輸出結(jié)果:創(chuàng)建一個(gè)文件夾名字為kitty
4.2 解析說明:創(chuàng)建文件夾。
4.3 解析說明:list.pop()就直接從list中的最末尾處刪除一個(gè)元素。
案例:os.rmdir('test')
5.1 輸出結(jié)果:刪除一個(gè)文件夾
5.3 解析說明:刪除文件夾.
解析說明:可以取代操作系統(tǒng)特定的路徑分割符
案例一:print(os.getcwd())
輸出結(jié)果:D:PythonProjectPython編程基礎(chǔ)
解析說明:相當(dāng)于linux下的pwd,獲取當(dāng)前目錄。
案例一:os.chdir(os.getcwd()+os.sep+'kitty')
解析說明:進(jìn)入到某個(gè)目錄下。
解析說明:相當(dāng)于linux下的ls,顯示當(dāng)前目錄下的文件。
解析說明:創(chuàng)建一個(gè)aa文件夾,再在里面創(chuàng)建一個(gè)bb文件夾。
解析說明:刪除aa文件夾和aa文件夾中的bb文件夾。
解析說明:判斷是否是個(gè)文件。
解析說明:判斷是否是個(gè)文件夾。
解析說明:判斷文件是否存在。
解析說明:獲取文件大小。
解析說明:返回文件的絕對(duì)路徑。
解析說明:獲取文件的文件名,注意參數(shù)需要傳入絕對(duì)路徑。
解析說明:獲取文件的所在目錄,注意參數(shù)需要傳入絕對(duì)路徑。
分享題目:pythonos函數(shù),python語言函數(shù)大全
鏈接URL:http://jinyejixie.com/article2/dsecjic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、商城網(wǎng)站、小程序開發(fā)、企業(yè)網(wǎng)站制作、建站公司、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)