溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中文件和路徑的操作總結(jié)

發(fā)布時(shí)間:2020-08-03 02:37:36 來源:網(wǎng)絡(luò) 閱讀:1697 作者:121502_hl 欄目:編程語言

文件操作

文件IO常用操作

open          打開操作

read          讀取操作

write         寫入操作

close         關(guān)閉操作

readline      行讀取操作

readlines     多行讀取操作

seek          文件指針操作

tell   指針位置



文件訪問有兩種模式,文本模式和二進(jìn)制模式,不同模式下,操作函數(shù)不盡相同,表現(xiàn)的結(jié)果也不一樣。文件操作做常用的就是讀和寫。

文件打開操作:

open (file ,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None) 作用:打開一個(gè)文件,返回一個(gè)文件對(duì)象流和文件描述符

file  打開或者要?jiǎng)?chuàng)建的文件名,如果不指定路徑,默認(rèn)是當(dāng)前路徑

mode模式:

r 缺省的,表示只讀打開 ,如果使用write方法,會(huì)拋出異常,如果文件不存在,拋出FileNotFountError異常

w 只寫打開,如果讀取則拋出異常,如果文件不存在,則直接創(chuàng)建文件,如果文件存在,則清空文件內(nèi)容

x 創(chuàng)建并寫入一個(gè)新文件,文件不存在,創(chuàng)建文件,并只寫方式打開,如果文件存在,則拋出FileExistsError異常

a 寫入打開,如果文件存在,則追加

b 二進(jìn)制模式 

t 缺省的,文本模式

+ 讀寫打開一個(gè)文件。給原來只讀,只寫方式提過缺省的讀或著寫能力


文件指針

文件指針,指向當(dāng)前字節(jié)位置

mode = r ,指針起始在0 mode =a ,指針起始在EOF

tell()顯示指針當(dāng)前位置

seek(offset[,whence])移動(dòng)文件指針位置,offest偏移多少字節(jié),whence從哪里開始。

文本模式下whence 0 缺省值,表示從頭開始,offest只能正整數(shù) 。whence 1 表示從當(dāng)前位置,offest只接受0 ,whence 2表示從EOF開始,offest只接受0

二進(jìn)制模式下whence 0 缺省值,表示從頭開始,offest只能正整數(shù)。 whence 1 表示從當(dāng)前位置,offest可正可負(fù) ,whence 2表示從EOF開始,offest可正可負(fù)


buffering              說明

buffering = -1          t和b,都是io.DEFAULT_BUFFER_SIZE

buffering = 0 b關(guān)閉緩沖區(qū)   t不支持

buffering = 1 b就一個(gè)字節(jié)   t行緩沖,遇到黃行符才flush

buffering > 1           b模式表示緩沖區(qū)大大小。緩存區(qū)的可以超過io.DEFAULT_BUFFER_SIZE,直到設(shè)定的值超出后才吧緩沖區(qū)flush

t模式,是io.DEFAULT_BUFFER_SIZE字節(jié),flush完后把當(dāng)前字符串也寫入磁盤

encoding:編碼,僅在文本模式使用 None表示使用缺省編碼,依賴操作系統(tǒng)


errors 什么樣的編碼錯(cuò)誤將被捕獲None和strict表示有編碼錯(cuò)誤將拋出ValueError異常,ignore表示忽略


newline 文本模式中,換行轉(zhuǎn)換,可以為None、‘空串’,‘\n’,'\r\n','\r'


closefd 關(guān)閉文件描述符,Ture表示關(guān)閉他,F(xiàn)alse會(huì)在文件關(guān)閉后保持這個(gè)描述符。



文件的讀、寫、關(guān)閉操作

read(size=-1) size表示讀取的字符或者字節(jié)。負(fù)數(shù)或者None表示讀到EOF

readline(size=-1) 一行行的讀取

readlines(dize=-1)  讀取指定的行數(shù)


write(s) 把字符串S寫入到文件中并返回字符的個(gè)數(shù)

writelines(s)  價(jià)格字符串列表寫入文件。


close

flush 關(guān)閉文件對(duì)象,再次關(guān)閉沒有任何效果



文件的上下文管理

上下文管理:

語法:

1:使用with....as關(guān)鍵字

2:上下文管理的語句塊并不會(huì)開啟新的作用域

3:with語句塊執(zhí)行完的時(shí)候,會(huì)自動(dòng)關(guān)閉文件對(duì)象


with語句的寫法:


with open(路徑名) as f:

f.write(‘字符串’)

file = pen(路徑名)

with file:

f.write(‘字符串’)

文件的路徑操作之pathlib模塊


導(dǎo)入pathlib模塊

初始化:

P = Path


目錄操作

路徑的拼接和分解

操作符/

P /字符串 或者   字符串/P


分解

parts屬性可以返回路徑中的每一部分


joinpath

join path(*other)連接多個(gè)字符串到Path對(duì)象中


獲取路徑

str 獲取路徑字符串

bytes 獲取路徑字符串bytes


父目錄

parent目錄的邏輯父目錄

parents 父目錄序列,索引0是直接的父


目錄組成部分

name  目錄的最后一個(gè)部分

suffix 目錄中最后一個(gè)部分的擴(kuò)展名

stem  目錄最后一個(gè)部分,沒有后綴

suffixes 返回多個(gè)擴(kuò)展名列表

with_suffixes(suffix) 有擴(kuò)展名則替換,無則補(bǔ)充擴(kuò)展名

with_name(name)替換目錄最后一個(gè)部分并返回一個(gè)新的路徑


全局方法

cwd()  返回當(dāng)前工作目錄

home()  返回當(dāng)前家目錄


方法

is_dir()             是否是目錄,存在返回True

is_file()            是否是普通文件,文件存在返回Ture

is_symlink()         是否是軟連接

is_socket            是否是socket

is_block_device()    是否是塊設(shè)備

is_char_device() 是否是字符設(shè)備

id_absolute()        是否是絕對(duì)路徑

resolve()            返回一個(gè)新的路徑

absolute()           獲取絕對(duì)路徑

exists()             目錄或者文件是否存在

rmdir()               刪除空目錄,沒有提供判斷目錄為空的方法

touch(mode=0o666,exist_ok=Ture)   創(chuàng)建一個(gè)文件

as_uri()將路徑返回成URL,例如‘file:///etc/passwd’

mkdir(mode=0O777,parents=False,exist_ok=False)

parents,是否創(chuàng)建符目錄,True等同于mkdir-p;Flase時(shí),父目錄不存在,則拋出FileNotFoundError

exist_ok參數(shù),在3.5版本加入。False時(shí),路徑存在,拋出FileExistsError;Ture時(shí),F(xiàn)ileExitsError被忽略

itemdir() 迭代當(dāng)前目錄



通配符:

glob(pattern)通配給定的模式

rglob(pattern)通配給定的模式,遞歸目錄

都返回一個(gè)生成器


配置

match(pattern)

模式匹配,成功返回Ture


stat()相當(dāng)于stat命令

lstat同stat(),但如果時(shí)符號(hào)鏈接,則顯示符號(hào)鏈接本身的文件信息


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI