โมดูล 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