Python3 pathlib让编程更美好
生活随笔
收集整理的這篇文章主要介紹了
Python3 pathlib让编程更美好
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個程序要在Windows,Mac,Linux上優雅的運行時,文件夾分隔符\ 、/是個困擾。
Ptyhon3之后的pathlib讓編程更美好,再也不是一個困擾了。
1. 舊的解決方案:Python的os.path模塊
Python的os.path模塊具有許多工具,可以解決這類特定于操作系統的文件系統問題。可以使用os.path.join()來為當前操作系統使用正確的斜杠類型來構建路徑字符串:
每一級都需要作為單獨的字符串傳遞,冗長而不直觀。
2. 更好的解決方案:Python 3的pathlib!
要使用它,只需使用正斜杠將路徑或文件名傳遞到新的Path()對象中,就ok了
- 路徑 Path(“source_data/text_files/”),會自動轉為當前操作系統的分隔符
- 讀取文本文件的內容,而不必擔心打開和關閉文件的麻煩;
- pathlib使大多數標準文件操作變得快速簡便;
import os.pathdata_folder = os.path.join("D:/gifCreate", "temp")
file_to_open = os.path.join(data_folder, "config.json")
f = open(file_to_open)
print(f.read())from pathlib import Pathdata_folder = Path("D:/gifCreate/temp/")
filename = data_folder / "config.json"
f = open(filename)
print(f.read())print(filename.read_text()) # 會自動關閉文件# pathlib使大多數標準文件操作變得快速簡便;
print(filename.name)
print(filename.suffix)
print(filename.stem)
if not filename.exists():print("Oops, file doesn't exist!")
else:print("Yay, the file exists!")p = Path("D:/gifCreate")
# 輸出所有目錄
print([x for x in p.iterdir() if x.is_dir()])
# 輸出所有文件
print(list(p.glob('*.*')))print(p.exists())
print(p.is_dir())# 可以使用pathlib將Unix路徑顯式轉換為Windows格式的路徑
from pathlib import Path, PureWindowsPathfilename = Path("D:/gifCreate/temp/config.json")# 轉換路徑為windows下格式
path_on_windows = PureWindowsPath(filename)
print(path_on_windows)# 用倆行代碼在瀏覽器中打開本地文件
from pathlib import Path
import webbrowserfilename = Path("D:/gifCreate/temp/config.json")
webbrowser.open(filename.absolute().as_uri())
print('----------')
參考:
-
https://docs.python.org/3/library/pathlib.html
-
https://medium.com/@ageitgey/python-3-quick-tip-the-easy-way-to-deal-with-file-paths-on-windows-mac-and-linux-11a072b58d5f
總結
以上是生活随笔為你收集整理的Python3 pathlib让编程更美好的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python监控目录文件夹,并使用SFT
- 下一篇: 文档扫描仪的构建——使用Python,O