您好,登錄后才能下訂單哦!
文件操作
文件IO常用操作
open 打開操作
read 讀取操作
write 寫入操作
close 關閉操作
readline 行讀取操作
readlines 多行讀取操作
seek 文件指針操作
tell 指針位置
文件訪問有兩種模式,文本模式和二進制模式,不同模式下,操作函數不盡相同,表現的結果也不一樣。文件操作做常用的就是讀和寫。
文件打開操作:
open (file ,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None) 作用:打開一個文件,返回一個文件對象流和文件描述符
file 打開或者要創建的文件名,如果不指定路徑,默認是當前路徑
mode模式:
r 缺省的,表示只讀打開 ,如果使用write方法,會拋出異常,如果文件不存在,拋出FileNotFountError異常
w 只寫打開,如果讀取則拋出異常,如果文件不存在,則直接創建文件,如果文件存在,則清空文件內容
x 創建并寫入一個新文件,文件不存在,創建文件,并只寫方式打開,如果文件存在,則拋出FileExistsError異常
a 寫入打開,如果文件存在,則追加
b 二進制模式
t 缺省的,文本模式
+ 讀寫打開一個文件。給原來只讀,只寫方式提過缺省的讀或著寫能力
文件指針
文件指針,指向當前字節位置
mode = r ,指針起始在0 mode =a ,指針起始在EOF
tell()顯示指針當前位置
seek(offset[,whence])移動文件指針位置,offest偏移多少字節,whence從哪里開始。
文本模式下whence 0 缺省值,表示從頭開始,offest只能正整數 。whence 1 表示從當前位置,offest只接受0 ,whence 2表示從EOF開始,offest只接受0
二進制模式下whence 0 缺省值,表示從頭開始,offest只能正整數。 whence 1 表示從當前位置,offest可正可負 ,whence 2表示從EOF開始,offest可正可負
buffering 說明
buffering = -1 t和b,都是io.DEFAULT_BUFFER_SIZE
buffering = 0 b關閉緩沖區 t不支持
buffering = 1 b就一個字節 t行緩沖,遇到黃行符才flush
buffering > 1 b模式表示緩沖區大大小。緩存區的可以超過io.DEFAULT_BUFFER_SIZE,直到設定的值超出后才吧緩沖區flush
t模式,是io.DEFAULT_BUFFER_SIZE字節,flush完后把當前字符串也寫入磁盤
encoding:編碼,僅在文本模式使用 None表示使用缺省編碼,依賴操作系統
errors 什么樣的編碼錯誤將被捕獲None和strict表示有編碼錯誤將拋出ValueError異常,ignore表示忽略
newline 文本模式中,換行轉換,可以為None、‘空串’,‘\n’,'\r\n','\r'
closefd 關閉文件描述符,Ture表示關閉他,False會在文件關閉后保持這個描述符。
文件的讀、寫、關閉操作
read(size=-1) size表示讀取的字符或者字節。負數或者None表示讀到EOF
readline(size=-1) 一行行的讀取
readlines(dize=-1) 讀取指定的行數
write(s) 把字符串S寫入到文件中并返回字符的個數
writelines(s) 價格字符串列表寫入文件。
close
flush 關閉文件對象,再次關閉沒有任何效果
文件的上下文管理
上下文管理:
語法:
1:使用with....as關鍵字
2:上下文管理的語句塊并不會開啟新的作用域
3:with語句塊執行完的時候,會自動關閉文件對象
with語句的寫法:
with open(路徑名) as f:
f.write(‘字符串’)
file = pen(路徑名)
with file:
f.write(‘字符串’)
文件的路徑操作之pathlib模塊
導入pathlib模塊
初始化:
P = Path
目錄操作
路徑的拼接和分解
操作符/
P /字符串 或者 字符串/P
分解
parts屬性可以返回路徑中的每一部分
joinpath
join path(*other)連接多個字符串到Path對象中
獲取路徑
str 獲取路徑字符串
bytes 獲取路徑字符串bytes
父目錄
parent目錄的邏輯父目錄
parents 父目錄序列,索引0是直接的父
目錄組成部分
name 目錄的最后一個部分
suffix 目錄中最后一個部分的擴展名
stem 目錄最后一個部分,沒有后綴
suffixes 返回多個擴展名列表
with_suffixes(suffix) 有擴展名則替換,無則補充擴展名
with_name(name)替換目錄最后一個部分并返回一個新的路徑
全局方法
cwd() 返回當前工作目錄
home() 返回當前家目錄
方法
is_dir() 是否是目錄,存在返回True
is_file() 是否是普通文件,文件存在返回Ture
is_symlink() 是否是軟連接
is_socket 是否是socket
is_block_device() 是否是塊設備
is_char_device() 是否是字符設備
id_absolute() 是否是絕對路徑
resolve() 返回一個新的路徑
absolute() 獲取絕對路徑
exists() 目錄或者文件是否存在
rmdir() 刪除空目錄,沒有提供判斷目錄為空的方法
touch(mode=0o666,exist_ok=Ture) 創建一個文件
as_uri()將路徑返回成URL,例如‘file:///etc/passwd’
mkdir(mode=0O777,parents=False,exist_ok=False)
parents,是否創建符目錄,True等同于mkdir-p;Flase時,父目錄不存在,則拋出FileNotFoundError
exist_ok參數,在3.5版本加入。False時,路徑存在,拋出FileExistsError;Ture時,FileExitsError被忽略
itemdir() 迭代當前目錄
通配符:
glob(pattern)通配給定的模式
rglob(pattern)通配給定的模式,遞歸目錄
都返回一個生成器
配置
match(pattern)
模式匹配,成功返回Ture
stat()相當于stat命令
lstat同stat(),但如果時符號鏈接,則顯示符號鏈接本身的文件信息
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。