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

文件操作

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、謝家集ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的謝家集網(wǎng)站制作公司

文件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) 作用:打開一個文件,返回一個文件對象流和文件描述符

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

mode模式:

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

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

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

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

b 二進(jìn)制模式 

t 缺省的,文本模式

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

文件指針

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

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

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

seek(offset[,whence])移動文件指針位置,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就一個字節(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 什么樣的編碼錯誤將被捕獲None和strict表示有編碼錯誤將拋出ValueError異常,ignore表示忽略

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

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

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

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

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

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

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

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

close

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

文件的上下文管理

上下文管理:

語法:

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

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

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

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)連接多個字符串到Path對象中

獲取路徑

str 獲取路徑字符串

bytes 獲取路徑字符串bytes

父目錄

parent目錄的邏輯父目錄

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

目錄組成部分

name  目錄的最后一個部分

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

stem  目錄最后一個部分,沒有后綴

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

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

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

全局方法

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()        是否是絕對路徑

resolve()            返回一個新的路徑

absolute()           獲取絕對路徑

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

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

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

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

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

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

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

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

通配符:

glob(pattern)通配給定的模式

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

都返回一個生成器

配置

match(pattern)

模式匹配,成功返回Ture

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

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

新聞標(biāo)題:Python中文件和路徑的操作總結(jié)
分享地址:http://bm7419.com/article2/pssiic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站微信小程序、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計公司網(wǎng)站維護(hù)、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)