pathlib मॉड्यूल फाइलसिस्टम पाथ्स को हैंडल करने के लिए ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण प्रदान करता है। मॉड्यूल विभिन्न ऑपरेटिंग सिस्टम के लिए उपयुक्त कार्यक्षमता भी प्रदान करता है। इस मॉड्यूल में डिफाइन क्लासेज दो प्रकार की हैं - प्योर पाथ टाइप्स और कंक्रीट पाथ टाइप्स। जबकि प्योर पाथ्स केवल कम्प्यूटेशनल ऑपरेशन कर सकते हैं, कंक्रीट पाथ्स I/O ऑपरेशन करने में भी सक्षम हैं।
pathlib मॉड्यूल निम्न क्लासेज डिफाइन करता है:
| क्र.सं. | मॉड्यूल और विवरण |
|---|---|
| 1 | PurePath अन्य सभी क्लासेज के लिए बेस क्लास |
| 2 | Path PurePath से सबक्लास्ड। यह एक कंक्रीट क्लास है जो फाइलसिस्टम पाथ को दर्शाती है। |
| 3 | PosixPath नॉन-विंडोज़ OS के लिए Path सबक्लास |
| 4 | WindowsPath विंडोज़ सिस्टम्स के लिए Path सबक्लास |
| 5 | PurePosixPath नॉन-विंडोज़ सिस्टम्स के लिए PurePath सबक्लास |
| 6 | PureWindowsPath विंडोज़ सिस्टम्स के लिए PurePath सबक्लास |
जब Path क्लास का इंस्टेंस बनाया जाता है, तो यह आपके सिस्टम के आधार पर स्वचालित रूप से WindowsPath या PosixPath लौटाएगा।
ध्यान दें कि WindowsPath या PosixPath ऑब्जेक्ट को सीधे भी बनाया जा सकता है, लेकिन केवल उसी प्रकार के सिस्टम पर।
Path ऑब्जेक्ट बनाने के लिए निम्न सिंटैक्स का उपयोग करें:
>>> from pathlib import *
>>> p = Path(".")
>>> type(p)
आप देख सकते हैं कि चूंकि उपरोक्त स्टेटमेंट विंडोज़ सिस्टम पर निष्पादित हुआ है, WindowsPath ऑब्जेक्ट बनाया गया है। "." करंट डायरेक्टरी को संदर्भित करता है।
Path क्लास में निम्न मेथड्स डिफाइन हैं:
absolute() - Path ऑब्जेक्ट का एब्सोल्यूट वर्जन लौटाता है।
>>> p.absolute()
WindowsPath('C:/python36')
exists() - यदि दिया गया पाथ मौजूद है तो true लौटाता है।
>>> p = Path("mydir")
>>> p.exists()
False
>>> p = Path("etc")
>>> p.exists()
True
is_dir() - यदि पाथ डायरेक्टरी है तो true लौटाता है।
>>> p = Path("etc")
>>> p.is_dir()
True
>>> p = Path("test.py")
>>> p.is_dir()
False
is_file() - यदि पाथ फ़ाइल से मेल खाता है तो true लौटाता है।
>>> 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() - Path ऑब्जेक्ट द्वारा दर्शाई गई फ़ाइल को खोलता है और फ़ाइल ऑब्जेक्ट लौटाता है। यह बिल्ट-इन 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
stat() - इस पाथ के बारे में जानकारी लौटाता है।
>>> 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() - Path ऑब्जेक्ट से मेल खाने वाली डायरेक्टरी को हटाता है।
>>> p = Path("mydir")
>>> p.rmdir()
Path.cwd() - यह Path क्लास का क्लासमेथड है। करंट वर्किंग डायरेक्टरी का पाथ लौटाता है।
>>> Path.cwd()
WindowsPath('C:/python36')
Path.home() - यह Path क्लास का क्लासमेथड है। होम डायरेक्टरी का पाथ लौटाता है।
>>> Path.home()
WindowsPath('C:/Users/acer')
'/' ऑपरेटर का उपयोग पाथ्स बनाने के लिए किया जाता है।
>>> p = Path(".")
>>> p1 = p/'codes'
>>> p1.absolute()
WindowsPath('C:/python36/codes')
इस लेख में हमने pathlib मॉड्यूल में डिफाइन फाइलसिस्टम ऑब्जेक्ट के ऑब्जेक्ट-ओरिएंटेड API को सीखा।