โมดูล pathlib จัดเตรียมแนวทางเชิงวัตถุเพื่อจัดการเส้นทางของระบบไฟล์ โมดูลนี้ยังมีฟังก์ชันการทำงานที่เหมาะสมกับระบบปฏิบัติการต่างๆ คลาสที่กำหนดไว้ในโมดูลนี้มีสองประเภท - ประเภทเส้นทางบริสุทธิ์และประเภทเส้นทางคอนกรีต แม้ว่าเส้นทางบริสุทธิ์จะทำได้เพียงการคำนวณเท่านั้น แต่เส้นทางที่เป็นรูปธรรมก็สามารถดำเนินการ I/O ได้เช่นกัน
โมดูล pathlib กำหนดคลาสต่อไปนี้ -
| ซีเนียร์ | โมดูล &คำอธิบาย |
|---|---|
| 1 | PurePath คลาสพื้นฐานสำหรับคลาสอื่นๆ ทั้งหมด |
| 2 | เส้นทาง คลาสย่อยจาก PurePath นี่คือคลาสที่เป็นรูปธรรมที่แสดงเส้นทางของระบบไฟล์ |
| 3 | PosixPath คลาสย่อยของพาธสำหรับระบบปฏิบัติการที่ไม่ใช่ Windows |
| 4 | WindowsPath คลาสย่อยของพาธสำหรับระบบ Windows |
| 5 | PurePosixPath คลาสย่อย PurePath สำหรับระบบที่ไม่ใช่ Windows |
| 6 | PureWindowsPath คลาสย่อย PurePath สำหรับระบบ Windows |
เมื่ออินสแตนซ์ของคลาส Path ถูกสร้างขึ้น มันจะส่งคืน WindowsPath หรือ PosixPath โดยอัตโนมัติขึ้นอยู่กับระบบของคุณ
โปรดทราบว่าวัตถุ WindowsPath หรือ PosixPath สามารถสร้างได้โดยตรง แต่ไม่ใช่บนระบบประเภทเดียวกันเท่านั้น
ในการสร้างเส้นทางวัตถุให้ใช้ไวยากรณ์ต่อไปนี้
>>> from pathlib import *
>>> p = Path(".")
>>> type(p)
<class 'pathlib.WindowsPath'> คุณจะเห็นได้ว่าเนื่องจากคำสั่งข้างต้นทำงานบนระบบ Windows วัตถุ WindowsPath จึงถูกสร้างขึ้น “.” หมายถึงไดเร็กทอรีปัจจุบัน
คลาส Path มีเมธอดที่กำหนดไว้ในนั้น
สัมบูรณ์() − ส่งคืนเวอร์ชันที่แน่นอนของวัตถุ Path
>>> p.absolute()
WindowsPath('C:/python36') มีอยู่() − คืนค่า true หากมีเส้นทางที่กำหนด
>>> p = Path("mydir")
>>> p.exists()
False
>>> p = Path("etc")
>>> p.exists()
True is_dir() − คืนค่า จริง หากพาธเป็นไดเร็กทอรี
>>> p = Path("etc")
>>> p.is_dir()
True
>>> p = Path("test.py")
>>> p.is_dir()
False is_file() − คืนค่า จริง หากพาธสอดคล้องกับไฟล์
>>> p = Path("tmp.py")
>>> p.is_file()
True
>>> p = Path("etc")
>>> p.is_file()
False iterdir() − ส่งคืนตัวสร้างที่ให้ชื่อไฟล์ในไดเร็กทอรีที่สอดคล้องกับเส้นทาง
>>> p = Path("libs")
>>> for f in p.iterdir():
print (f)
libs\libpython36.a
libs\python3.lib
libs\python36.lib
libs\_tkinter.lib mkdir() − สร้างไดเร็กทอรีใหม่แทนพาธหากยังไม่มี
>>> p = Path("mydir")
>>> p.mkdir()
>>> p.absolute()
WindowsPath('C:/python36/mydir')
>>> p = Path("codes")
>>> p.mkdir()
FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'codes' เปิด() - เปิดไฟล์ที่แสดงโดยวัตถุเส้นทางและส่งคืนวัตถุไฟล์ ซึ่งคล้ายกับฟังก์ชัน open() ในตัว
>>> p = Path("Hello.py")
>>> f = p.open()
>>> f.readline()
'Hello Python' read_bytes() - เปิดไฟล์ในโหมดไบนารี อ่านข้อมูลในรูปแบบไบนารีและปิดแบบเดียวกัน
>>> p = Path("Hello.py")
>>> f.read_bytes()
>>> p.read_bytes()
b'Hello Python' read_text() − ไฟล์ถูกเปิดในโหมดข้อความเพื่ออ่านข้อความและปิดในภายหลัง
>>> p = Path("Hello.py")
>>> p.read_text()
'Hello Python' write_text() - เปิดไฟล์ เขียนข้อความ แล้วปิด
>>> p = Path("Hello.py")
>>> p.write_text("Hello how are you?")
18 write_bytes() − เขียนข้อมูลไบนารีในไฟล์และปิดเหมือนกัน
>>> p = Path("Hello.py")
>>> p.write_bytes(b'I am fine')
9 สถิติ() − ส่งคืนข้อมูลเกี่ยวกับเส้นทางนี้
>>> p.stat() os.stat_result(st_mode = 16895, st_ino = 9570149208167477, st_dev = 1526259762, st_nlink = 1, st_uid = 0, st_gid = 0, st_size = 0, st_atime = 1543085915, st_mtime = 1543085915, st_ctime = 1543085915)
rmdir() - ลบไดเรกทอรีที่สอดคล้องกับวัตถุเส้นทาง
>>> p = Path("mydir")
>>> p.rmdir() Path.cwd() − นี่คือคลาสเมธอดของคลาสพาธ ส่งคืนพาธไปยังไดเร็กทอรีการทำงานปัจจุบัน
>>> Path.cwd()
WindowsPath('C:/python36') Path.home() − นี่คือคลาสเมธอดของคลาสพาธ ส่งคืนพาธไปยังโฮมไดเร็กตอรี่
>>> Path.home()
WindowsPath('C:/Users/acer') ตัวดำเนินการ '/' ใช้สำหรับสร้างเส้นทาง
>>> p = Path(".")
>>> p1 = p/'codes'
>>> p1.absolute()
WindowsPath('C:/python36/codes') ในบทความนี้ เราได้เรียนรู้ API เชิงวัตถุไปยังวัตถุระบบไฟล์ตามที่กำหนดไว้ในโมดูล pathlib