python OS模塊學(xué)習(xí)
基礎(chǔ)學(xué)習(xí)
創(chuàng)建打開(kāi)文件:
源碼 open(file,mode='r',buffering=None,encoding=None,errors=None,newline=None,closefd=True)
open(filename毙沾,mode,encoding)常用元素
filename:文件名(添加路徑)
mode:打開(kāi)模式宠页;r 只讀模式左胞,w只寫(xiě)模式,a追加模式举户,+讀寫(xiě)模式(從頭進(jìn)行覆蓋)烤宙,b二進(jìn)制格式打開(kāi)文件
encoding:編碼模式。常用“utf-8”俭嘁,“gbk”
注意:有open躺枕,必須有close
上下文管理:
with open() as file:
? ? pass
好處:無(wú)論是否拋出異常,都能保證with語(yǔ)句執(zhí)行完畢后關(guān)閉已打開(kāi)文件
文件寫(xiě)入
file.write(string)
前提:文件打開(kāi)模式不能為“r”或“rb”
讀取內(nèi)容
file.read(size)
size:可選參數(shù)兄淫,指定讀取個(gè)數(shù)(字母屯远,標(biāo)點(diǎn),漢字都是一個(gè)字符)默認(rèn)讀取全部?jī)?nèi)容
file.seek(offset,whence)
offset: 指定移動(dòng)的字符個(gè)數(shù)捕虽,具體位置與whence有關(guān)慨丐。注意:一個(gè)漢字是兩個(gè)字符,英文泄私、數(shù)字和符號(hào)為1個(gè)字符
whence:只有在“b”模式下使用房揭”赶校“0”從文件開(kāi)頭開(kāi)始,“1”從當(dāng)前位置開(kāi)始捅暴,“2”從文件末尾開(kāi)始恬砂。default=0
file.readline() 每次讀取一行數(shù)據(jù)
file.readlines()? 讀取全部數(shù)據(jù),返回字符串列表蓬痒,帶有“\n”
目錄操作os與os.path
os模塊與目錄有關(guān)函數(shù)
getcwd() 返回當(dāng)前目錄
listdir(path)? 返回指定目錄下的文件和目錄信息(只有下一級(jí)泻骤,沒(méi)有孫子級(jí))
mkdir(path)? 創(chuàng)建目錄
makedirs(path1/path2/path3/....)? ?創(chuàng)建多級(jí)目錄
rmdir(path)? 刪除目錄;目錄下不能存在內(nèi)容
removedirs(path1/path2/path3/....)? 刪除目錄梧奢;目錄下不能存在內(nèi)容
chdir(path)? ?把path指定為工作目錄
walk(top)? 遍歷目錄樹(shù)狱掂,該方法返回一個(gè)元祖,包含路徑名亲轨、目錄列表趋惨、文件列表
文件名發(fā)生轉(zhuǎn)義
一般從直接獲取的路徑為“E:\learn\static\file”,python會(huì)對(duì)路徑中的“\”分隔符進(jìn)行轉(zhuǎn)義
方法一:將“\”改為“\\”
方法二:將“\”改為“/”
方法三:r“E:\learn\static\file”? r表示取消轉(zhuǎn)義 例如(witn open(r“E:\learn\static\file”,'r') as f:)
刪除目錄
rmdir 與removedirs 只能刪除空目錄惦蚊,非空目錄發(fā)生報(bào)錯(cuò)
非空目錄刪除:
import shutil
shutil.rmtree(r"E:\learn\static\file")? # 刪除file目錄以及file中的內(nèi)容
os.path提供函數(shù)
abspath(path)? ?獲取文件或目錄的絕對(duì)路徑
exists(path)? ?判斷目錄或文件的路徑是否存在器虾。返回True、False
join(path,name)? ?拼接目錄與目錄或者文件名拼接起來(lái)蹦锋≌咨常可以為虛假路徑不會(huì)報(bào)錯(cuò)
splitext(filename)? 以元祖形式分離文件名與擴(kuò)展名 (例如:('../static/image/背景2', '.jpeg'))
basename(parh) 從目錄中提取文件名(包含文件擴(kuò)展名)(例如:背景2.jpeg)
dirname(path)? 從文件路徑中獲取文件路徑,不包含文件名 (例如:../static/image)
isdir(path)? 用于判斷paht是否為路徑
文件操作
os模塊關(guān)于文件的函數(shù)
os.remove(path)
path:文件路徑莉掂,相對(duì)和絕對(duì)都可以
os.rename(file_oldname,file_newname)
注意:文件夾和文件都可以使用
獲取文件基本信息
os.stat(path)
????????????????????????????????????????stat()返回的常用屬性
st_mode? ? ?保護(hù)模式
st_ino? ? ? ? ?索引號(hào)
st_size? ? ? ?文件大小
st_dev? ? ? ? 設(shè)備名
st_uid? ? ? ? ? 用戶id
st_gin? ? ? ? ? 組id
st_nlink? ? ? ?硬鏈接號(hào)(被鏈接數(shù)目)
st_atime? ? ? 最后一次訪問(wèn)時(shí)間
st_mtime? ? ?最后一次修改時(shí)間? ??
st_ctime? ? ? ?最后一次狀態(tài)變化時(shí)間(系統(tǒng)不同返回結(jié)果不同挤悉,windows下返回創(chuàng)建時(shí)間)