【轉載】關於pathlib 的用法介紹

最近入職了新公司,南京的西門子電氣自動化有限公司,不過是外包進的,都是淚!哎!不管怎樣,繼續努力,繼續學習,繼續加油吧!

這兩天接觸到了pathlib模塊,發現比os.path 等好用太多,特此記錄一下:

地址:https://www.jianshu.com/p/ecc1af359df9

以一個更方便和更人性化的方法對os.path進行了包裝,那麼我們可以以後統一建立一個ROOT_PATH的path類然後對其進行操作。

  • from pathlib import Path 導入包。
  • p = Path(filepath)創建一個path對象
    當p是路徑的時候
    • p.parent:p的父路徑
    • p.parents:p的所有祖輩路徑,返回一個列表,序號越大表示離p越遠。
    • p.iterdir():返回一個迭代器,包含P下所有的文件。
    • p.is_file()p.is_dir()判斷p是文件還是目錄。
    • p.is_absolute()判斷p是否是絕對路徑。
    • p.match('C:\Windows\*'):判斷p是否符合某一個模式。
    • p.glob('*.py'):在p下搜索符合某一模式的文件。
    • p.glob('**\*.py')或者p.rglob('*.py')在p及其子目錄下搜索符合某一模式文件,rglob是遞歸的遍歷所有子目錄的文件。
    • p.mkdir()如果p不是目錄的時候創建目錄。
      • Path.mkdir(mode=0o777, parents=False, exist_ok=False):如果parents爲True的時候,那麼當中間文件夾缺失的時候也可以創建中間文件夾,如果exist_ok爲True的時候那麼可以當文件夾存在的時候不raise error.
        *p.joinpath('a','b'):文件夾的連接。

PurePosixPath('/etc').joinpath('init.d', 'apache2')
PurePosixPath('/etc/init.d/apache2')
當p是文件的時候

  • p.name:獲取文件名。
  • p.suffix:獲取後綴。

其他用法

  • Path.cwd()返回當前路徑名
  • 最好用的方法莫過於直接用除法就表示路徑了。
print(Path("/home/zhaoliang/test.py").parent/'vocab.txt')
> /home/zhaoliang/vocab.txt
  • stem 目錄最後一個部分,沒有後綴
print(Path("/home/zhaoliang/test.py").stem)
>test
  • with_name(name) 替換目錄最後一個部分並返回一個新的路徑
print(Path("/home/zhaoliang/test.py").with_name('vocab.txt'))
> /home/zhaoliang/vocab.txt
  • with_suffix(suffix) 替換擴展名,返回新的路徑,擴展名存在則不變
print(Path("/home/zhaoliang/test.py").with_suffix('.txt'))
> /home/zhaoliang/test.txt
  • Path().exist()判斷路徑或者文件是否存在。
# 判斷路徑是否存在
path = Path("path/file")
path.exist()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章