जवाबों:
os.path.isabs
रिटर्न True
अगर पथ, निरपेक्ष है False
नहीं तो। प्रलेखन कहता है कि यह विंडोज़ में काम करता है (मैं व्यक्तिगत रूप से लिनक्स में काम करता है इसकी पुष्टि कर सकता हूं)।
os.path.isabs(my_path)
का उपयोग करें os.path.isabs
।
import os.path
os.path.isabs('/home/user')
True
os.path.isabs('user')
False
वास्तव में मुझे लगता है कि ऊपर दिए गए उत्तरों में से कोई भी वास्तविक मुद्दा नहीं है: क्रॉस-प्लेटफ़ॉर्म पथ। Os.path क्या करता है, 'पथ' लाइब्रेरी के OS निर्भर संस्करण को लोड करता है। इसलिए समाधान प्रासंगिक (OS) पथ लाइब्रेरी को स्पष्ट रूप से लोड करना है:
import ntpath
import posixpath
ntpath.isabs("Z:/a/b/c../../H/I/J.txt")
True
posixpath.isabs("Z:/a/b/c../../H/I/J.txt")
False
def path_is_abs(p): return (len(p) > 1) and (p[0] == '/' or p[1] == ':')
से python 3.4
pathlib उपलब्ध है।
In [1]: from pathlib import Path
In [2]: Path('..').is_absolute()
Out[2]: False
In [3]: Path('C:/').is_absolute()
Out[3]: True
In [4]: Path('..').resolve()
Out[4]: WindowsPath('C:/the/complete/path')
In [5]: Path('C:/').resolve()
Out[5]: WindowsPath('C:/')
Path('\tmp').is_absolute()
सही तरीके से देता है False
, जबकि os.path.isabs('\tmp')
गलत तरीके से देता है True
। (कुछ का तर्क होगा कि \tmp
विंडोज पर एक पूर्ण पथ है, लेकिन यह केवल एक निरपेक्ष मार्ग की बहुत बेकार परिभाषा के लिए सच है ।)
os.path.isabs('c:\\')
झूठी वापसी।