小編寫這篇文章的主要目的,是用來告訴大家,在python標(biāo)準(zhǔn)庫中,os常用功能解析的相關(guān)知識,大家要仔細(xì)進(jìn)行閱讀哦。
1、目錄操作
1.1、獲取當(dāng)前目錄
#coding:utf-8 import os #獲取當(dāng)前工作目錄(絕對路徑) print(os.getcwd())#E:newpythonProjectBlog #獲取當(dāng)前工作目錄(絕對路徑),值以Unicode編碼返回 print(os.getcwdb())#b'E:\new\pythonProject\Blog' #獲取當(dāng)前目錄,以"."表示 print(os.curdir)#. #獲取當(dāng)前目錄的上級目錄,以".."表示 print(os.pardir)#..
1.2、創(chuàng)建目錄
#coding:utf-8 import os #創(chuàng)建目錄,路徑可以是絕對路徑也可以是相對路徑,linux系統(tǒng)運(yùn)行的程序還需指定mode參數(shù),即文件夾的權(quán)限 #文件目錄存在時(shí),再次創(chuàng)建會執(zhí)行報(bào)錯(cuò),因此實(shí)際開發(fā)中創(chuàng)建目錄需判斷目錄是否存在 if os.path.lexists('./test'):#判斷'./test'是否存在 print("./test已經(jīng)存在") else: os.mkdir('./test')#穿件'./test'目錄,"."代表當(dāng)前目錄,等效于os.mkdir('test') print(os.listdir("E:\new\pythonProject\Blog")) #['config','config.txt','demo.py','image','Music','Python0S.py','test','__init__.py'] #遞歸創(chuàng)建目錄 if os.path.lexists("E:\new\pythonProject\Blog\test\12\123"): pass else: os.makedirs('test\12\123') print(os.listdir("E:\new\pythonProject\Blog\test"))#['12'] print(os.listdir("E:\new\pythonProject\Blog\test\12"))#['213'] #os.makedirs('test\12\123')#error FileExistsError:[WinError 183]當(dāng)文件已存在時(shí),無法創(chuàng)建該文件。:'test\12\123'
1.3、刪除目錄
#coding:utf-8 import os #刪除單個(gè)目錄 #目錄不存在時(shí)報(bào)錯(cuò),刪除時(shí)判斷目錄是否存在 #os.rmdir('test123')#FileNotFoundError:[WinError 2]系統(tǒng)找不到指定的文件。:'test123' if os.path.lexists('test1'): os.rmdir('test1') else: print("test1目錄不存在") #非空目錄報(bào)錯(cuò),刪除時(shí)先判斷是否是空目錄,在進(jìn)行刪除 if os.path.lexists('test2'): os.rmdir('test2')#OSError:[WinError 145]目錄不是空的。:'test' else: print("test2目錄不存在") #先判斷目錄是否存在,再判斷目錄是否非空目錄,再進(jìn)行相應(yīng)的操作 if os.path.lexists('test'): if os.listdir('test'): print("test目錄非空") else: os.rmdir('test') else: print("test目錄不存在") #刪除多個(gè)目錄 #目錄不存在時(shí)報(bào)錯(cuò),開發(fā)時(shí)判斷先判斷目錄是否存在再進(jìn)行操作 #os.removedirs('test123')#FileNotFoundError:[WinError 2]系統(tǒng)找不到指定的文件。:'test123' if os.path.lexists('test4'): os.removedirs('test4') else: print("test4目錄不存在") #目錄非空時(shí)報(bào)錯(cuò), if os.path.lexists(r"test/12/213"): os.removedirs(r"test/12/213") else: print("test/12/213目錄不存在")#test/12/213 test下只有12目錄12只有213目錄213目錄為空,則刪除test #刪除22和44目錄,11目錄非空(存在33目錄),因此11目錄保留 if os.path.lexists(r"11/22/44"): os.removedirs(r"11/22/44") else: print("11/22/44目錄不存在") print(os.listdir())
1.4、重命名目錄
#coding:utf-8 import os #目錄重命名 #語法格式os.rename('oldName','newName') #原目錄不存在時(shí)報(bào)錯(cuò) #os.rename('oldTest','newTest')#FileNotFoundError:[WinError 2]系統(tǒng)找不到指定的文件。:'oldTest'->'newTest' if os.path.lexists('oldTest'): os.rename('oldTest','newTest') else: print('oldTest目錄不存在')
if os.path.lexists('11'): os.rename('11','newTest') else: print('11目錄不存在')
1.5、切換目錄
#coding:utf-8 import os #變更工作目錄,將工作目錄變更至E:newpythonProject,在Python中""均有轉(zhuǎn)義字符的作用, #因此使用"\"將后面的""轉(zhuǎn)移為"" #從根目錄起始的文件路徑稱之為絕對路徑,根據(jù)當(dāng)前位置起始的路徑稱之為相對路徑 print(os.getcwd())#E:newpythonProjectBlog #絕對路徑 os.chdir(r"E:newpythonProjectBlognewTest") print(os.getcwd())#E:newpythonProjectBlognewTest os.chdir(r"E:newpythonProjectBlog") print(os.getcwd())#E:newpythonProjectBlog #相對路徑 os.chdir("./newTest") print(os.getcwd())#E:newpythonProjectBlognewTest #切換到當(dāng)前目錄的上級目錄 os.chdir(os.pardir) print(os.getcwd())#E:newpythonProjectBlog
1.6、獲取目錄下的文件內(nèi)容
#coding:utf-8 import os #獲取目錄下的文件內(nèi)容 #獲取指定目錄下的文件夾和文件的名稱;只會查找指定目錄的當(dāng)前目錄下的文件名和文件夾名稱,不會查找下級的文件名和文件夾名稱 print(os.listdir("E:\new\pythonProject\Blog")) #默認(rèn)當(dāng)前目錄 print(os.listdir()) #文件不存在時(shí)報(bào)錯(cuò),使用時(shí)先判斷目錄是否存在 #print(os.listdir(r"E:newpythonProjectBlog1")) #FileNotFoundError:[WinError 3]系統(tǒng)找不到指定的路徑。:'E:\new\pythonProject\Blog1' if os.path.lexists(r"E:newpythonProjectBlog1"): print(os.listdir(r"E:newpythonProjectBlog1")) else: print("指定的目錄不存在") 1.7、判斷目錄是否存在 1.8、判斷是否是目錄 #coding:utf-8 import os #目錄不存在和非目錄都返回False print(os.path.isdir(r'11'))#False print(os.path.isdir(r'config'))#False print(os.path.isdir(r'newTest'))#True 1.9、判斷是否是絕對路徑 #coding:utf-8 import os #路徑不存在和非絕對路徑都返回False print(os.path.isabs(r'11'))#False print(os.path.isabs(r'config'))#False print(os.path.isabs(r'newTest'))#False print(os.path.isabs(r'E:newpythonProjectBlog'))#True
2、文件操作
文件的IO操作完成后必須關(guān)閉連接對象
flags多個(gè)值時(shí)以|隔開
2.1、讀寫文件
#coding:utf-8 import os #文件操作 #文件的IO操作完成后必須關(guān)閉連接對象 #常用格式os.open(path,flags,mode),mode一般為Linux系統(tǒng)文件操作的參數(shù),設(shè)置文件權(quán)限 """ 常用的flags: os.O_RDONLY:以只讀的方式打開 os.O_WRONLY:以只寫的方式打開 os.O_RDWR:以讀寫的方式打開 os.O_NONBLOCK:打開時(shí)不阻塞 os.O_APPEND:以追加的方式打開 os.O_CREAT:創(chuàng)建或打開文件 os.O_TRUNC:打開一個(gè)文件并截?cái)嗨拈L度為零(必須有寫權(quán)限) """ #flags多個(gè)值時(shí)以|隔開 #以只讀權(quán)限打開config文件,文件不存在時(shí)報(bào)錯(cuò),先判斷是否存在再進(jìn)行操作,必要時(shí)需先判斷是否為文件 if os.path.lexists(r'E:new\pythonProjectBlogconfig.txt'): fd=os.open(r'E:new\pythonProjectBlogconfig.txt',os.O_RDONLY) #讀取11個(gè)字符,從0開始計(jì)數(shù) print(os.read(fd,10))#b'12356789ab' os.close(fd) else: pass #寫權(quán)限打開config文件 fd1=os.open("E:\new\pythonProject\Blog\config.txt",os.O_WRONLY) #print(os.read(fd1,10))#OSError:[Errno 9]Bad file descriptor #將文件的前N個(gè)字符替換為新的字符,替換長度由替換的內(nèi)容長度決定 os.write(fd1,bytes('python','UTF-8'))#文件的讀寫都是以字節(jié)類型存取 os.close(fd1) #文件存在打開,文件不存在新增 fd2=os.open("E:\new\pythonProject\Blog\config.txt",os.O_RDWR) print(os.read(fd2,10)) os.write(fd2,bytes('java','UTF-8')) print(os.read(fd2,10)) os.close(fd2)
#追加模式打開文件,必須具有寫權(quán)限
fd3=os.open("E:\new\pythonProject\Blog\config.txt",os.O_RDWR|os.O_APPEND)
print(os.read(fd3,100))
os.write(fd2,bytes('java','UTF-8'))
os.close(fd2)
2.2、創(chuàng)建文件
#coding:utf-8 import os """ 常用的flags: os.O_RDONLY:以只讀的方式打開 os.O_WRONLY:以只寫的方式打開 os.O_RDWR:以讀寫的方式打開 os.O_NONBLOCK:打開時(shí)不阻塞 os.O_APPEND:以追加的方式打開 os.O_CREAT:創(chuàng)建或打開文件 os.O_TRUNC:打開一個(gè)文件并截?cái)嗨拈L度為零(必須有寫權(quán)限) """ #創(chuàng)建空文件 fd=os.open("text.txt",os.O_CREAT) os.close(fd) #創(chuàng)建文件并寫入數(shù)據(jù)時(shí)須具有寫權(quán)限 fd=os.open("text.txt",os.O_CREAT|os.O_RDWR) os.write(fd,bytes('Yang','UTF-8')) os.close(fd)
2.3、刪除文件
#coding:utf-8 import os #文件不存在時(shí)報(bào)錯(cuò) if os.path.lexists('text.txt'): os.remove('text.txt') else: print("文件不存在")
2.4、重命名文件
#coding:utf-8 import os #文件不存在時(shí)報(bào)錯(cuò) if os.path.lexists('text.txt'): os.rename('text.txt',"new.txt") else: print("文件不存在")
2.5、文件判斷
#coding:utf-8 import os #文件是否存在 print(os.path.exists(r"E:newpythonProjectBlogconfig.txt"))#true #是否為文件 print(os.path.isfile(r"E:newpythonProjectBlogconfig.txt"))#True
3、路徑操作
#coding:utf-8 import os #拼接 print(os.path.join("11",'22','33','server.log'))#112233server.log #分離路徑中的路徑寄文件名 print(os.path.split(r"E:newpythonProjectBlogconfig.txt"))#('E:\new\pythonProject\Blog','config.txt') print(os.path.split(r"E:newpythonProjectBlog"))#('E:\new\pythonProject','Blog') #獲取路徑中的文件名 print(os.path.basename(r"E:newpythonProjectBlogconfig.txt"))#config.txt #獲取路徑中的路徑名 print(os.path.dirname(r"E:newpythonProjectBlogconfig.txt"))#E:newpythonProjectBlog #獲取絕對路徑 print(os.path.abspath(r"Blogconfig.txt"))#E:newpythonProjectBlogBlogconfig.txt #分離文件拓展名 print(os.path.splitext(r"E:newpythonProjectBlogconfig.txt"))#('E:\new\pythonProject\Blog\config','.txt')
4、其他
#coding:utf-8 import os #顯示當(dāng)前使用系統(tǒng)平臺。'nt'代表Windows,'posix'代表Linux print(os.name)#nt #分隔符 print("11"+os.altsep+'server.log')#11/server.log print("11"+os.path.altsep+'server.log')#11/server.log #系統(tǒng)路徑分隔符號;window為"",linux為"/" print(os.sep)# print(os.path.sep)# #獲取文件名稱和后綴之間的間隔符號 print(os.extsep)#. print("--------") #換行符 print(os.linesep) print("110"+os.linesep+'119') #執(zhí)行操作系統(tǒng)指令 os.system("dir")
綜上所述,知識就為大家介紹到這里了,希望可以為各位讀者帶來幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/127787.html
摘要:是回調(diào)函數(shù),當(dāng)鏈接服務(wù)器和相應(yīng)數(shù)據(jù)傳輸完畢時(shí)觸發(fā)本函數(shù)可選。僅僅是針對的,在中,已經(jīng)沒有這個(gè)模塊了,取代它的是。由于以流式讀取文件,從而速度較快,切少占用內(nèi)存,但是操作上稍復(fù)雜,需要用戶實(shí)現(xiàn)回調(diào)函數(shù)。 編寫模塊 模塊是程序 模塊就是一個(gè)擴(kuò)展名為.py的Python程序。 編寫模塊 #!/usr/bin/env python # coding=utf-8 lang = python 引...
摘要:以下這些項(xiàng)目,你拿來學(xué)習(xí)學(xué)習(xí)練練手。當(dāng)你每個(gè)步驟都能做到很優(yōu)秀的時(shí)候,你應(yīng)該考慮如何組合這四個(gè)步驟,使你的爬蟲達(dá)到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學(xué)習(xí)不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設(shè)計(jì)方案,比如說。 (一)如何學(xué)習(xí)Python 學(xué)習(xí)Python大致可以分為以下幾個(gè)階段: 1.剛上手的時(shí)候肯定是先過一遍Python最基本的知識,比如說:變量、數(shù)據(jù)結(jié)構(gòu)、語法...
關(guān)于Python,相比大家都不會陌生吧,那么,其中的一些配置文件是什么呢?有沒有可能給大家去進(jìn)行做一個(gè)匯總,匯總的內(nèi)容還是比較的多的,包含寫法等一些相關(guān)的知識,具體的一些相關(guān)匯總,下面給大家詳細(xì)解答下?! ∏把浴 ≡谶@篇文章里所提到的環(huán)境變量種類其多元性由上至下到另一個(gè)先后提升:ini為何要寫環(huán)境變量 在研發(fā)流程中,很多人都會使用一些固定不動主要參數(shù)或者整型變量。對于這類相對固定不動且經(jīng)常使...
摘要:本文將進(jìn)入單元測試的部分,這也是基礎(chǔ)知識中最后一個(gè)大塊。本文將重點(diǎn)講述和中的單元測試的生態(tài)環(huán)境。另外,在中指定要運(yùn)行的單元測試用例的完整語法是。中使用模塊管理單元測試用例。每個(gè)項(xiàng)目的單元測試代碼結(jié)構(gòu)可 本文將進(jìn)入單元測試的部分,這也是基礎(chǔ)知識中最后一個(gè)大塊。本文將重點(diǎn)講述Python和OpenStack中的單元測試的生態(tài)環(huán)境。 單元測試的重要性 github上有個(gè)人畫了一些不同語言的學(xué)...
摘要:文章來源通用時(shí)間管理模塊,封裝了常用的時(shí)間日期相關(guān)的方法。并支持自定義的日期格式化語法,格式化語法類似的語法。示例,自定義時(shí)間格式化語法在該示例中,我們給定了四種格式,并將當(dāng)前時(shí)間用這四種格式轉(zhuǎn)換后打印出來。 文章來源:http://gf.johng.cn/494387 通用時(shí)間管理模塊,封裝了常用的時(shí)間/日期相關(guān)的方法。并支持自定義的日期格式化語法,格式化語法類似PHP的date語法...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02