Python四大模塊文件管理介紹_第1頁
Python四大模塊文件管理介紹_第2頁
Python四大模塊文件管理介紹_第3頁
Python四大模塊文件管理介紹_第4頁
Python四大模塊文件管理介紹_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第Python四大模塊文件管理介紹目錄一、os模塊1、方法大綱2、常用方法二、glob模塊1、方法大綱2、使用示例三、shutil模塊1、方法大綱2、壓縮包四、pathlib模塊1、對比圖2、路徑獲取3、文件屬性4、文件判斷5、路徑拼接6、正則匹配7、讀寫操作

一、os模塊

1、方法大綱

2、常用方法

方法描述getcwd()獲取當(dāng)前工作目錄chdir(path)將當(dāng)前的工作目錄更改為指定的路徑listdir(path=None)列出指定目錄中的文件名。如果path為None,則使用path=.。mkdir(path,mode=511,*,dir_fd=None)創(chuàng)建目錄makedirs(name,mode=511,exist_ok=False)遞歸創(chuàng)建多層目錄rename(src,dst,*,src_dir_fd=None,dst_dir_fd=None)重命名文件或目錄remove(path,*,dir_fd=None)刪除文件rmdir(path,*,dir_fd=None)刪除目錄removedirs(name)遞歸刪除目錄,從子目錄到父目錄逐層嘗試刪除,遇到目錄非空拋出異常。walk(top,topdown=True,onerror=None,followlinks=False)遍歷top路徑下的所有子目錄,返回一個包含3個元素的元組:(dirpath,dirnames,filenames)。os.curdir指代當(dāng)前目錄(.)os.pardir指代上一級目錄()os.sep路徑分割符(Windows為\,Linux為/)os.linesep行終止符(Windows為\r\n,Linux為\n)指代當(dāng)前使用的操作系統(tǒng)(Windows系統(tǒng)為nt,Linux為posix)

二、glob模塊

1、方法大綱

glob模塊也是Python標準庫中一個重要的模塊,主要用來查找符合特定規(guī)則的目錄和文件,并將搜索的到的結(jié)果返回到一個列表中。使用這個模塊最主要的原因就是,該模塊支持幾個特殊的正則通配符,用起來賊方便,這個將會在下方為大家進行詳細講解。

2、使用示例

importglob

path1=r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a\[0-9].png"

print(glob.glob(path1))

path2=r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a\[0-9a-z].*"

print(glob.glob(path2))

注意:這個函數(shù)里面還有一個參數(shù),recursive,當(dāng)其為真時,則模式**將與任何文件匹配,并且

零或更多目錄和子目錄。

三、shutil模塊

1、方法大綱

os模塊是Python標準庫中一個重要的模塊,里面提供了對目錄和文件的一般常用操作。而Python另外一個標準庫shutil模塊,它作為os模塊的補充,提供了復(fù)制、移動、刪除、壓縮、解壓等操作,這些os模塊中一般是沒有提供的。但是需要注意的是:shutil模塊對壓縮包的處理是調(diào)用ZipFile和TarFile這兩個模塊來進行的。

2、壓縮包

對壓縮包管理是使用zipfile模塊

importzipfile

importos

file_list=os.listdir(os.getcwd())#獲取當(dāng)前目錄

#將上述所有文件,進行打包,使用“w”

withzipfile.ZipFile(r"我創(chuàng)建的壓縮包.zip","w")aszipobj:#對文件進行壓縮

forfileinfile_list:

zipobj.write(file)#將文件寫入壓縮包中

四、pathlib模塊

1、對比圖

操作osandos.pathpathlib絕對路徑os.path.abspathPath.resolve修改權(quán)限os.chmodPath.chmod創(chuàng)建目錄os.mkdirPath.mkdir重命名os.renamePath.rename移動os.replacePath.replace刪除目錄os.rmdirPath.rmdir刪除文件os.remove,os.unlinkPath.unlink工作目錄os.getcwdPath.cwd是否存在os.path.existsPath.exists用戶目錄os.path.expanduserPath.expanduserandPath.home是否為目錄os.path.isdirPath.is_dir是否為文件os.path.isfilePath.is_file是否為連接os.path.islinkPath.is_symlink文件屬性os.statPath.stat,Path.owner,Path.group是否為絕對路徑os.path.isabsPurePath.is_absolute路徑拼接os.path.joinPurePath.joinpath文件名os.path.basenamePureP上級目錄os.path.dirnamePurePath.parent同名文件os.path.samefilePath.samefile后綴os.path.splitextPurePath.suffix

2、路徑獲取

獲取當(dāng)前工作目錄

importpathlib

print(pathlib.Path.cwd())#雖然在這里打印出來的很像一個字符串,但實際上得到的是一個WindowsPath對象

#其實現(xiàn)了__repr__和__str__底層方法

print(pathlib.Path(__file__))#獲取當(dāng)前文件路徑

工作目錄是在哪個目錄下運行你的程序,不是項目目錄

獲取家目錄

importpathlib

print(pathlib.Path.home())#獲取當(dāng)前用戶的家目錄

獲取文件絕對路徑

frompathlibimportPath

#當(dāng)前文件路徑

p=Path(__file__)

print(p)

print(p.absolute())#將路徑轉(zhuǎn)換為絕對路徑,p.resolve()功能也是一樣的

遍歷當(dāng)前目錄

frompathlibimportPath

#當(dāng)前文件路徑

p=Path('files')

foriinp.iterdir():

print(i.absolute())

運行結(jié)果:

C:\Users\3500\PycharmProjects\untitled3\demo\files\json

C:\Users\3500\PycharmProjects\untitled3\demo\files\username.txt

C:\Users\3500\PycharmProjects\untitled3\demo\files\yaml

3、文件屬性

frompathlibimportPath

#當(dāng)前文件路徑

p=Path(__file__)

print(p.absolute())#獲取絕對路徑

print(p.resolve())#獲取絕對路徑

print()#獲取文件名稱'test.py'

print(p.stem)#只要文件名,不要后綴test

print(p.suffix)#獲取文件后綴.py

print(p.suffixes)#文件所有的后綴['.py']

print(p.parts)#拆分('C:\\','Users','3500','PycharmProjects','untitled3','demo','test.py')

print(p.parent)#獲取當(dāng)前路徑的父級目錄,C:\Users\35000\PycharmProjects\untitled3\demo

print(p.parent.parent)#C:\Users\3500\PycharmProjects\untitled3

print(p.parents)#所有的父級WindowsPath.parents

print(p.anchor)#錨,目錄前面的部分C:\或者/

4、文件判斷

frompathlibimportPath

#1.is_file()判斷是不是文件

print(Path.cwd().is_file())#False

#2.is_dir()判斷是不是文件夾

print(Path.cwd().is_dir())#True

#exists()判斷文件是否存在

p=Path('./data.json')

print(p.exists())#TrueorFalse

frompathlibimportPath

#當(dāng)前文件路徑

p=Path(__file__)#獲取當(dāng)前文件的路徑

print(p.is_absolute())#True

5、路徑拼接

frompathlibimportPath

#當(dāng)前文件路徑

p=Path('./')

print(p.absolute())#C:\Users\3500\PycharmProjects\untitled3\demo

print(p.joinpath('data.json'))#data.json

print(p.joinpath('data.json').absolute())#C:\Users\3500\PycharmProjects\untitled3\demo\data.json

#拼接多層

print(p.joinpath('files','data.json'))#files\data.json

print(p.joinpath('files','data.json').absolute())#C:\Users\3500\PycharmProjects\untitled3\demo\files\data.json

6、正則匹配

使用模式匹配(正則表達式)匹配指定的路徑。glob只會匹配當(dāng)前目錄下,rglob會遞歸所有子目錄

比如在當(dāng)前腳本的files目錄有以下文件夾和子文件

frompathlibimportPath

p=Path('files')

#glob只會遍歷查找當(dāng)前目錄

print(p.glob('*.txt'))#generatorobjectPath.globat0x000001A44565A518

print([iforiinp.glob('*.txt')])#[WindowsPath('files/username.txt')]

print([iforiinp.glob('*.yml')])#[]

#rglob只會遍歷查找當(dāng)前目錄以及其子目錄

print(p.rglob('*.txt'))#generatorobjectPath.globat0x000001A44565A518

print([iforiinp.rglob('*.txt')])#[WindowsPath('files/username.txt')]

print([iforiinp.rglob('*.yml')])#[WindowsPath('files/yaml/aa.yml'),WindowsPath('files/yaml/bb.yml')]

p_=Path('data.json')

#math檢查匹配規(guī)則

print(p_.match('*.json'))#True

7、讀寫操作

pathlib對讀取和寫入進行了簡單的封裝,不再需要重復(fù)去打開文件和管理文件的關(guān)閉了。

.read_text()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論