python路徑操作:
3.4版本之前:os.path模塊
3.4版本開始,建議使用pathlib模塊,提供Path對象來操作,包括目錄和文件
目錄操作:
路徑拼接和分解:
操作符/ Path對象/Path對象;Path對象/字符串;字符串/Path對象
分解:parts屬性,可以返回路徑中的每一部分
joinpath(*other):連接多個字符串到Path對象中
str():獲取路徑字符串;bytes():獲取路徑字符串的bytes
parent:目錄的邏輯父目錄;parents:父目錄序列,索引0是直接的父
name:目錄中的最后一個部分
suffix:目錄中最后一個部分的擴展名
stem:目錄最后一個部分,沒有后綴
suffixes:返回多個擴展名列表
with_suffix(suffix):補充擴展名到路徑尾部,返回新的路徑,擴展名存在則無效
with_name(name):替換目錄最后一個部分並返回一個新的路徑
cwd():返回當前工作目錄
home():返回當前家目錄
is_dir():是否是目錄,目錄存在放回True
is_file():是否是普通文件,文件存在返回True
is_symlink():是否是軟連接
is_socket():是否是socket文件
is_block_device():是否是塊設備
is_char_device():是否是字符設備
is_absolute():是否是絕對路徑
resolve():返回一個新的路徑,這個新路徑就是當前Path對象的絕對路徑,如果是軟連接則直接被解析
exists():目錄或者文件是否存在
rmdir():刪除空目錄,沒有提供判斷目錄為空的方法
touch(mode=0o666,exist_ok=True):創建一個文件
as_url():將路徑返回成URL
mkdir(mode=0o777,parents=False,exist_ok=False):創建一個目錄,parents,是否創建父目錄,True等同於mkdir -p;False時,父目錄不存在,則拋出FileNotFoundError;exist_ok,在3.5版本加入,False時,路徑存在,拋出FileExistsError;True時,FileEexistsError被忽略
iterdir():迭代當前目錄
通配符:
glob(pattern):通配給定的模式
rglob(pattern):通配給定的模式,遞歸目錄
match(pattern):模式匹配,成功返回True
文件操作:
open():使用方法類似內建函數open,返回一個文件對象
read_bytes():以‘rb’讀取路徑對應的文件,並返回二進制流
read_text(encoding=None,errors=None):以‘rt’方式讀取路徑對應文件,返回文本
Path.write_bytes(data):以‘wb’方式寫入數據到路徑對應文件
write_text(data,encoding=None,errors=None):以‘wt’方式寫入字符串到路徑對應文件