pathlib的常用方法

  patnlib-面向對象的文件系統路徑

  pathlib模塊提供了一個面向對象API來解析、建立、測試和處理文件名和路徑,而不是像os.path那向使用底層字符串,進行操作。

  但是此方法與os.path有許多共通之處,請看os.path.join瞭解詳情。

  一、建立路徑

  Path()函數

  要實例化一個新路徑,可以提供一個字符串作爲第一個參數。要創建一個新路徑來指示相對於已有路徑的值,可以使用 '/'操作符擴展路徑。這個操作符的參數可以是字符串,也可以是路徑對象。

  from pathlib import Path

  p = Path('C:\\Users\\Administrator\\Desktop')

  print(p)

  p = p / 'aa.txt'

  print(p)

  輸出結果:

  C:\Users\Administrator\Desktop

  C:\Users\Administrator\Desktop/aa.txt

  拼接符 ‘/’ 有以下三種操作:

  Path對象 / Path對象

  Path對象 / 字符串

  字符串 / Path對象

  此操作與os.path.join相似!對os.path.join有疑問,可參考os.path.join

  二、解析路徑

  路徑對象提供了一些方法和屬性可以從路徑名中抽取出部分值。例如,parts屬性可以生成根據路徑分隔符值解析得到的一個路徑段序列。

  1、分解parts

  >>>from pathlib import Path

  >>>p = Path('C:\\Users\\Administrator\\Desktop')

  >>>print(p.parts)

  ('C:\\', 'Users', 'Administrator', 'Desktop')

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

  2、父目錄parent

  有兩種辦法可以從一個給定的路徑對象在文件系統層次結構上“向上”導航。這裏直接看代碼更直觀。

  >>>from pathlib import Path

  >>>p = Path('C:\\Users\\Administrator\\Desktop')

  >>>print(p.parent)

  C:\Users\Administrator

  >>>print(p.parent.parent)

  C:\Users

  parents是一個迭代器,每調用一次,目錄向上一次。

  >>>for x in p.parents:

  print(x)

  C:\Users\Administrator

  C:\Users

  C:\

  這個例子迭代處理parents屬性,並打印成員值。

  3、name屬性、suffix屬性、stem屬性

  >>>from pathlib import Path

  >>>p = Path('C:\\Users\\Administrator\\Desktop')

  >>>print('{!s:<15} : {!s:>15}'.format('path', p))

  >>>print('{!s:<15} : {!s:>15}'.format('name', p.name))

  >>>print('{!s:<15} : {!s:>15}'.format('suffix', p.suffix))

  >>>print('{!s:<15} : {!s:>15}'.format('stem', p.stem))

  path : C:\Users\Administrator\Desktop\aa.txt

  name : aa.txt鄭州看婦科那個醫院好 http://mobile.120zzzy.com/

  suffix : .txt

  stem : aa

  name屬性:包含路徑的最後一部分,即最後一個路徑分隔符後面的內容(與os.path.basename()生成的值相同)

  suffix屬性:目錄中最後一個部分的擴展名

  stem屬性:目錄最後一個部分,沒有後綴

  另外還有這兩個屬性:

  with_name(name) :替換目錄最後一個部分並返回一個新的路徑

  with_suffix(suffix) :替換擴展名,返回新的路徑,擴展名存在則不變

  4、home()、cwd()

  >>>from pathlib import Path

  >>>Path.home()

  WindowsPath('C:/Users/Administrator')

  >>>Path.cwd()

  WindowsPath('C:/Users/Administrator')

  判斷路徑的類型

  返回類型爲布爾值:

  is_dir() 是否是目錄

  is_file() 是否是普通文件

  >>>from pathlib import Path

  >>>p = Path('C:/Users/Administrator')

  >>>p.is_dir()

  True

  >>>p1 = p / 'text.txt'

  >>>p1.is_file()

  False

  resolve() 返回一個新的路徑,這個新路徑就是當前Path對象的絕對路徑

  exists()屬性:該路徑是否指向現有的目錄或文件

  >>>Path('C:/Users/Administrator').exists()

  True

  創建目錄及文件

  mkdir

  mkdir(parents=False,exist_ok=False) 創建目錄

  parents:是否創建父目錄,True等同mkdir -p;False時,父目錄不存在,則拋出FileNotFoundError

  exist_ok:在3.5版本加入。False時,路徑存在,拋出FileExistsError;True時,FileExistsError被忽略

  >>> p = Path('C:/Users/Administrator/Desktop/')

  >>> p = p / 'test' / 'test1'

  >>> p.mkdir(parents=True,exist_ok=True) # 在桌面上創建test目錄,test內創建test1目錄

  touch

  touch(exist_ok=True) 創建一個文件

  as_uri() 將路徑返回成URI(Uniform Resource Identifier,統一資源標識符,是一個用於標識某一互聯網資源名稱的字符串)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章