程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

[Python] Pathlib 使用

編輯:Python

pathlib

  • Python built-in, version >= 3.4
  • 考慮到 Windows/Linux 等不同操作系統下路徑的差異,建議不再使用 os.path.*和字符串來管理路徑。
  • from pathlib import Path
操作例子備注創建p = Path('C:/Users/Username/Documents)可以是文件,也可以是文件夾,現在還不能保證這個路徑有東西p = Path('C: \\', 'Users', 'Username', 'Documents')等價寫法,可以把各個部分拆開p2 = p.with_name('file2.txt')快速獲得同一文件夾下其他文件的 Path 對象p2 = p.with_suffix('.csv')快速獲得同一文件 basename 但不同後綴的 Path 對象拼接p = Path(...) / str_of_subpath非常自然地用除號進行連接p = Path(...).joinpath(str_of_subpath)也可以用方法完整路徑字符串str(p)獲取上一級p.parent文件夾的上級文件夾;文件的所在文件夾;可以連用多個 parent獲取 basename, noext-basename, extp.name, p.stem, p.suffix獲取所在文件夾(os.path.dirname)p.parent 即可。如果還要獲取文件夾的路徑再 str()獲取路徑裡各節組成的字符串元組p.partsWindows 的 C: \\ 是一個單獨的字符串是否存在,是否是文件/文件夾p.exists(), p.is_file(), p.is_dir()遍歷p.iterdir()返回生成器,可用 for 迭代,需要事先判斷是否為文件夾查找(基於正則)p.glob('*.txt')返回生成器,需要事先判斷是否為文件夾,見 4 glob built-inp.glob('*/*.txt')查找當前文件夾下一級所有文件夾裡的 txtp.glob('**/*.txt')查找當前文件夾下所有級 文件夾裡的 txt讀寫p.read_text(...), p.read_bytes(...)
p.write_text(...), p.write_bytes(...)都不用調用 open 打開了withwith p.open('r') as f:和普通的 open 一樣用判斷兩個路徑是否等價p.samefile(str_of_file)創建/刪除文件夾p.mkdir(), p.rmdir()

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved