新聞中心
pathlib —- 面向?qū)ο蟮奈募到y(tǒng)路徑
3.4 新版功能.

源代碼 Lib/pathlib.py
該模塊提供表示文件系統(tǒng)路徑的類,其語義適用于不同的操作系統(tǒng)。路徑類被分為提供純計算操作而沒有 I/O 的 純路徑,以及從純路徑繼承而來但提供 I/O 操作的 具體路徑。
如果以前從未用過此模塊,或不確定哪個類適合完成任務(wù),那要用的可能就是 Path。它在運行代碼的平臺上實例化為 具體路徑。
在一些用例中純路徑很有用,例如:
-
如果你想要在 Unix 設(shè)備上操作 Windows 路徑(或者相反)。你不應在 Unix 上實例化一個 WindowsPath,但是你可以實例化 PureWindowsPath。
-
你只想操作路徑但不想實際訪問操作系統(tǒng)。在這種情況下,實例化一個純路徑是有用的,因為它們沒有任何訪問操作系統(tǒng)的操作。
參見
PEP 428:pathlib 模塊 — 面向?qū)ο蟮奈募到y(tǒng)路徑。
參見
對于底層的路徑字符串操作,你也可以使用 os.path 模塊。
基礎(chǔ)使用
導入主類:
>>> from pathlib import Path
列出子目錄:
>>> p = Path('.')>>> [x for x in p.iterdir() if x.is_dir()][PosixPath('.hg'), PosixPath('docs'), PosixPath('dist'),PosixPath('__pycache__'), PosixPath('build')]
列出當前目錄樹下的所有 python 源代碼文件:
>>> list(p.glob('**/*.py'))[PosixPath('test_pathlib.py'), PosixPath('setup.py'),PosixPath('pathlib.py'), PosixPath('docs/conf.py'),PosixPath('build/lib/pathlib.py')]
在目錄樹中移動:
>>> p = Path('/etc')>>> q = p / 'init.d' / 'reboot'>>> qPosixPath('/etc/init.d/reboot')>>> q.resolve()PosixPath('/etc/rc.d/init.d/halt')
查詢路徑的屬性:
>>> q.exists()True>>> q.is_dir()False
打開一個文件:
>>> with q.open() as f: f.readline()...'#!/bin/bash\n'
純路徑
純路徑對象提供了不實際訪問文件系統(tǒng)的路徑處理操作。有三種方式來訪問這些類,也是不同的風格:
class pathlib.PurePath(\pathsegments*)
一個通用的類,代表當前系統(tǒng)的路徑風格(實例化為 PurePosixPath 或者 PureWindowsPath):
>>> PurePath('setup.py') # Running on a Unix machinePurePosixPath('setup.py')
每一個 pathsegments 的元素可能是一個代表路徑片段的字符串,一個返回字符串的實現(xiàn)了 os.PathLike 接口的對象,或者另一個路徑對象:
>>> PurePath('foo', 'some/path', 'bar')PurePosixPath('foo/some/path/bar')>>> PurePath(Path('foo'), Path('bar'))PurePosixPath('foo/bar')
當 pathsegments 為空的時候,假定為當前目錄:
>>> PurePath()PurePosixPath('.')
當給出一些絕對路徑,最后一位將被當作錨(模仿 os.path.join() 的行為):
>>> PurePath('/etc', '/usr', 'lib64')PurePosixPath('/usr/lib64')>>> PureWindowsPath('c:/Windows', 'd:bar')PureWindowsPath('d:bar')
但是,在 Windows 路徑中,改變本地根目錄并不會丟棄之前盤符的設(shè)置:
>>> PureWindowsPath('c:/Windows', '/Program Files')PureWindowsPath('c:/Program Files')
假斜杠和單個點號會被消除,但雙點號 ('..') 和打頭的雙斜杠 ('//') 不會,因為這會出于各種原因改變路徑的實際含義 (例如符號鏈接、UNC 路徑等):
>>> PurePath('foo//bar')PurePosixPath('foo/bar')>>> PurePath('//foo/bar')PurePosixPath('//foo/bar')>>> PurePath('foo/./bar')PurePosixPath('foo/bar')>>> PurePath('foo/../bar')PurePosixPath('foo/../bar')
(一個很 na?ve 的做法是讓 PurePosixPath('foo/../bar') 等同于 PurePosixPath('bar'),如果 foo 是一個指向其他目錄的符號鏈接那么這個做法就將出錯)
純路徑對象實現(xiàn)了 os.PathLike 接口,允許它們在任何接受此接口的地方使用。
在 3.6 版更改: 添加了 os.PathLike 接口支持。
class pathlib.PurePosixPath(\pathsegments*)
一個 PurePath 的子類,路徑風格不同于 Windows 文件系統(tǒng):
>>> PurePosixPath('/etc')PurePosixPath('/etc')
pathsegments 參數(shù)的指定和 PurePath 相同。
class pathlib.PureWindowsPath(\pathsegments*)
PurePath 的一個子類,此路徑風格代表 Windows 文件系統(tǒng)路徑,包括 UNC paths#UNC):
>>> PureWindowsPath('c:/Program Files/')PureWindowsPath('c:/Program Files')>>> PureWindowsPath('//server/share/file')PureWindowsPath('//server/share/file')
pathsegments 參數(shù)的指定和 PurePath 相同。
無論你正運行什么系統(tǒng),你都可以實例化這些類,因為它們提供的操作不做任何系統(tǒng)調(diào)用。
通用性質(zhì)
路徑是不可變并可哈希的。相同風格的路徑可以排序與比較。這些性質(zhì)尊重對應風格的大小寫轉(zhuǎn)換語義:
>>> PurePosixPath('foo') == PurePosixPath('FOO')False>>> PureWindowsPath('foo') == PureWindowsPath('FOO')True>>> PureWindowsPath('FOO') in { PureWindowsPath('foo') }True>>> PureWindowsPath('C:') < PureWindowsPath('d:')True
不同風格的路徑比較得到不等的結(jié)果并且無法被排序:
>>> PureWindowsPath('foo') == PurePosixPath('foo')False>>> PureWindowsPath('foo') < PurePosixPath('foo')Traceback (most recent call last):File "", line 1, in TypeError: '<' not supported between instances of 'PureWindowsPath' and 'PurePosixPath'
運算符
斜杠 / 操作符有助于創(chuàng)建子路徑,就像 os.path.join() 一樣:
>>> p = PurePath('/etc')>>> pPurePosixPath('/etc')>>> p / 'init.d' / 'apache2'PurePosixPath('/etc/init.d/apache2')>>> q = PurePath('bin')>>> '/usr' / qPurePosixPath('/usr/bin')
文件對象可用于任何接受 os.PathLike 接口實現(xiàn)的地方。
>>> import os>>> p = PurePath('/etc')>>> os.fspath(p)'/etc'
路徑的字符串表示法為它自己原始的文件系統(tǒng)路徑(以原生形式,例如在 Windows 下使用反斜杠)。你可以傳遞給任何需要字符串形式路徑的函數(shù)。
>>> p = PurePath('/etc')>>> str(p)'/etc'>>> p = PureWindowsPath('c:/Program Files')>>> str(p)'c:\\Program Files'
類似地,在路徑上調(diào)用 bytes 將原始文件系統(tǒng)路徑作為字節(jié)對象給出,就像被 os.fsencode() 編碼一樣:
>>> bytes(p)b'/etc'
備注
只推薦在 Unix 下調(diào)用 bytes。在 Windows, unicode 形式是文件系統(tǒng)路徑的規(guī)范表示法。
訪問個別部分
為了訪問路徑獨立的部分 (組件),使用以下特征屬性:
PurePath.parts
一個元組,可以訪問路徑的多個組件:
>>> p = PurePath('/usr/bin/Python3')>>> p.parts('/', 'usr', 'bin', 'python3')>>> p = PureWindowsPath('c:/Program Files/PSF')>>> p.parts('c:\\', 'Program Files', 'PSF')
(注意盤符和本地根目錄是如何重組的)
方法和特征屬性
純路徑提供以下方法和特征屬性:
PurePath.drive
一個表示驅(qū)動器盤符或命名的字符串,如果存在:
>>> PureWindowsPath('c:/Program Files/').drive'c:'>>> PureWindowsPath('/Program Files/').drive''>>> PurePosixPath('/etc').drive''
UNC 分享也被認作驅(qū)動器:
>>> PureWindowsPath('//host/share/foo.txt').drive'\\\\host\\share'
PurePath.root
一個表示(本地或全局)根的字符串,如果存在:
>>> PureWindowsPath('c:/Program Files/').root'\\'>>> PureWindowsPath('c:Program Files/').root''>>> PurePosixPath('/etc').root'/'
UNC 分享一樣擁有根:
>>> PureWindowsPath('//host/share').root'\\'
如果路徑以超過兩個連續(xù)斜框打頭,PurePosixPath 會合并它們:
>>> PurePosixPath('//etc').root'//'>>> PurePosixPath('///etc').root'/'>>> PurePosixPath('////etc').root'/'
備注
This behavior conforms to The Open Group Base Specifications Issue 6, paragraph 4.11 Pathname Resolution:
“以連續(xù)兩個斜杠打頭的路徑名可能會以具體實現(xiàn)所定義的方式被解讀,但是兩個以上的前綴斜杠則應當被當作一個斜杠來處理?!?/em>
PurePath.anchor
驅(qū)動器和根的聯(lián)合:
>>> PureWindowsPath('c:/Program Files/').anchor'c:\\'>>> PureWindowsPath('c:Program Files/').anchor'c:'>>> PurePosixPath('/etc').anchor'/'>>> PureWindowsPath('//host/share').anchor'\\\\host\\share\\'
PurePath.parents
提供訪問此路徑的邏輯祖先的不可變序列:
>>> p = PureWindowsPath('c:/foo/bar/setup.py')>>> p.parents[0]PureWindowsPath('c:/foo/bar')>>> p.parents[1]PureWindowsPath('c:/foo')>>> p.parents[2]PureWindowsPath('c:/')
在 3.10 版更改: parents 序列現(xiàn)在支持 切片 和負的索引值。
PurePath.parent
此路徑的邏輯父路徑:
>>> p = PurePosixPath('/a/b/c/d')>>> p.parentPurePosixPath('/a/b/c')
你不能超過一個 anchor 或空路徑:
>>> p = PurePosixPath('/')>>> p.parentPurePosixPath('/')>>> p = PurePosixPath('.')>>> p.parentPurePosixPath('.')
備注
這是一個單純的詞法操作,因此有以下行為:
>>> p = PurePosixPath('foo/..')>>> p.parentPurePosixPath('foo')
If you want to walk an arbitrary filesystem path upwards, it is recommended to first call Path.resolve() so as to resolve symlinks and eliminate ".." components.
PurePath.name
一個表示最后路徑組件的字符串,排除了驅(qū)動器與根目錄,如果存在的話:
>>> PurePosixPath('my/library/setup.py').name'setup.py'
UNC 驅(qū)動器名不被考慮:
>>> PureWindowsPath('//some/share/setup.py').name'setup.py'>>> PureWindowsPath('//some/share').name''
PurePath.suffix
最后一個組件的文件擴展名,如果存在:
>>> PurePosixPath('my/library/setup.py').suffix'.py'>>> PurePosixPath('my/library.tar.gz').suffix'.gz'>>> PurePosixPath('my/library').suffix''
PurePath.suffixes
路徑的文件擴展名列表:
>>> PurePosixPath('my/library.tar.gar').suffixes['.tar', '.gar']>>> PurePosixPath('my/library.tar.gz').suffixes['.tar', '.gz']>>> PurePosixPath('my/library').suffixes[]
PurePath.stem
最后一個路徑組件,除去后綴:
>>> PurePosixPath('my/library.tar.gz').stem'library.tar'>>> PurePosixPath('my/library.tar').stem'library'>>> PurePosixPath('my/library').stem'library'
PurePath.as_posix()
返回使用正斜杠(/)的路徑字符串:
>>> p = PureWindowsPath('c:\\windows')>>> str(p)'c:\\windows'>>> p.as_posix()'c:/windows'
PurePath.as_uri()
將路徑表示為 file URL。如果并非絕對路徑,拋出 ValueError。
>>> p = PurePosixPath('/etc/passwd')>>> p.as_uri()'file:///etc/passwd'>>> p = PureWindowsPath('c:/Windows')>>> p.as_uri()'file:///c:/Windows'
PurePath.is_absolute()
返回此路徑是否為絕對路徑。如果路徑同時擁有驅(qū)動器符與根路徑(如果風格允許)則將被認作絕對路徑。
>>> PurePosixPath('/a/b').is_absolute()True>>> PurePosixPath('a/b').is_absolute()False>>> PureWindowsPath('c:/a/b').is_absolute()True>>> PureWindowsPath('/a/b').is_absolute()False>>> PureWindowsPath('c:').is_absolute()False>>> PureWindowsPath('//some/share').is_absolute()True
PurePath.is_relative_to(\other*)
返回此路徑是否相對于 other 的路徑。
>>> p = PurePath('/etc/passwd')>>> p.is_relative_to('/etc')True>>> p.is_relative_to('/usr')False
3.9 新版功能.
PurePath.is_reserved()
在 PureWindowsPath,如果路徑是被 Windows 保留的則返回 True,否則 False。在 PurePosixPath,總是返回 False。
>>> PureWindowsPath('nul').is_reserved()True>>> PurePosixPath('nul').is_reserved()False
當保留路徑上的文件系統(tǒng)被調(diào)用,則可能出現(xiàn)玄學失敗或者意料之外的效應。
PurePath.joinpath(\other*)
調(diào)用此方法等同于將每個 other 參數(shù)中的項目連接在一起:
>>> PurePosixPath('/etc').joinpath('passwd')PurePosixPath('/etc/passwd')>>> PurePosixPath('/etc').joinpath(PurePosixPath('passwd'))PurePosixPath('/etc/passwd')>>> PurePosixPath('/etc').joinpath('init.d', 'apache2')PurePosixPath('/etc/init.d/apache2')>>> PureWindowsPath('c:').joinpath('/Program Files')PureWindowsPath('c:/Program Files')
PurePath.match(pattern)
將此路徑與提供的通配符風格的模式匹配。如果匹配成功則返回 True,否則返回 False。
如果 pattern 是相對的,則路徑可以是相對路徑或絕對路徑,并且匹配是從右側(cè)完成的:
>>> PurePath('a/b.py').match('*.py')True>>> PurePath('/a/b/c.py').match('b/*.py')True>>> PurePath('/a/b/c.py').match('a/*.py')False
如果 pattern 是絕對的,則路徑必須是絕對的,并且路徑必須完全匹配:
>>> PurePath('/a.py').match('/*.py')True>>> PurePath('a/b.py').match('/*.py')False
與其他方法一樣,是否大小寫敏感遵循平臺的默認規(guī)則:
>>> PurePosixPath('b.py').match('*.PY')False>>> PureWindowsPath('b.py').match('*.PY')True
PurePath.relative_to(\other*)
計算此路徑相對 other 表示路徑的版本。如果不可計算,則拋出 ValueError:
>>> p = PurePosixPath('/etc/passwd')>>> p.relative_to('/')PurePosixPath('etc/passwd')>>> p.relative_to('/etc')PurePosixPath('passwd')>>> p.relative_to('/usr')Traceback (most recent call last):File "", line 1, in File "pathlib.py", line 694, in relative_to.format(str(self), str(formatted)))ValueError: '/etc/passwd' is not in the subpath of '/usr' OR one path is relative and the other absolute.
注意:此函數(shù)是 PurePath 的一部分并且適用于字符串。 它不會檢查或訪問下層的文件結(jié)構(gòu)。
PurePath.with_name(name)
返回一個新的路徑并修改 name。如果原本路徑?jīng)]有 name,ValueError 被拋出:
>>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz')>>> p.with_name('setup.py')PureWindowsPath('c:/Downloads/setup.py')>>> p = PureWindowsPath('c:/')>>> p.with_name('setup.py')Traceback (most recent call last):File "", line 1, in File "/home/antoine/cpython/default/Lib/pathlib.py", line 751, in with_nameraise ValueError("%r has an empty name" % (self,))ValueError: PureWindowsPath('c:/') has an empty name
PurePath.with_stem(stem)
返回一個帶有修改后 stem 的新路徑。 如果原路徑?jīng)]有名稱,則會引發(fā) ValueError:
>>> p = PureWindowsPath('c:/Downloads/draft.txt')>>> p.with_stem('final')PureWindowsPath('c:/Downloads/final.txt')>>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz')>>> p.with_stem('lib')PureWindowsPath('c:/Downloads/lib.gz')>>> p = PureWindowsPath('c:/')>>> p.with_stem('')Traceback (most recent call last):File "", line 1, in File "/home/antoine/cpython/default/Lib/pathlib.py", line 861, in with_stemreturn self.with_name(stem + self.suffix)File "/home/antoine/cpython/default/Lib/pathlib.py", line 851, in with_nameraise ValueError("%r has an empty name" % (self,))ValueError: PureWindowsPath('c:/') has an empty name
3.9 新版功能.
PurePath.with_suffix(suffix)
返回一個新的路徑并修改 suffix。如果原本的路徑?jīng)]有后綴,新的 suffix 則被追加以代替。如果 suffix 是空字符串,則原本的后綴被移除:
>>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz')>>> p.with_suffix('.bz2')PureWindowsPath('c:/Downloads/pathlib.tar.bz2')>>> p = PureWindowsPath('README')>>> p.with_suffix('.txt')PureWindowsPath('README.txt')>>> p = PureWindowsPath('README.txt')>>> p.with_suffix('')PureWindowsPath('README')
具體路徑
具體路徑是純路徑的子類。除了后者提供的操作之外,它們還提供了對路徑對象進行系統(tǒng)調(diào)用的方法。有三種方法可以實例化具體路徑:
class pathlib.Path(\pathsegments*)
一個 PurePath 的子類,此類以當前系統(tǒng)的路徑風格表示路徑(實例化為 PosixPath 或 WindowsPath):
>>> Path('setup.py')PosixPath('setup.py')
pathsegments 參數(shù)的指定和 PurePath 相同。
class pathlib.PosixPath(\pathsegments*)
一個 Path 和 PurePosixPath 的子類,此類表示一個非 Windows 文件系統(tǒng)的具體路徑:
>>> PosixPath('/etc')PosixPath('/etc')
pathsegments 參數(shù)的指定和 PurePath 相同。
class pathlib.WindowsPath(\pathsegments*)
Path 和 PureWindowsPath 的子類,從類表示一個 Windows 文件系統(tǒng)的具體路徑:
>>> WindowsPath('c:/Program Files/')WindowsPath('c:/Program Files')
pathsegments 參數(shù)的指定和 PurePath 相同。
你只能實例化與當前系統(tǒng)風格相同的類(允許系統(tǒng)調(diào)用作用于不兼容的路徑風格可能在應用程序中導致缺陷或失?。?
>>> import os>>> os.name'posix'>>> Path('setup.py')PosixPath('setup.py')>>> PosixPath('setup.py')PosixPath('setup.py')>>> WindowsPath('setup.py')Traceback (most recent call last):File "", line 1, in File "pathlib.py", line 798, in __new__% (cls.__name__,))NotImplementedError: cannot instantiate 'WindowsPath' on your system
方法
除純路徑方法外,實體路徑還提供以下方法。 如果系統(tǒng)調(diào)用失?。ɡ缫驗槁窂讲淮嬖冢┻@些方法中許多都會引發(fā) OSError。
在 3.8 版更改: 對于包含 OS 層級無法表示字符的路徑,exists(), is_dir(), is_file(), is_mount(), is_symlink(), is_block_device(), is_char_device(), is_fifo(), is_socket() 現(xiàn)在將返回 False 而不是引發(fā)異常。
classmethod Path.cwd()
返回一個新的表示當前目錄的路徑對象(和 os.getcwd() 返回的相同):
>>> Path.cwd()PosixPath('/home/antoine/pathlib')
classmethod Path.home()
返回一個表示用戶家目錄的新路徑對象(與帶 ~ 構(gòu)造的 os.path.expanduser() 所返回的相同)。 如果無法解析家目錄,則會引發(fā) RuntimeError。
>>> Path.home()PosixPath('/home/antoine')
3.5 新版功能.
Path.stat(**, follow_symlinks=True*)
返回一個 os.stat_result 對象,其中包含有關(guān)此路徑的信息,例如 os.stat()。 結(jié)果會在每次調(diào)用此方法時重新搜索。
此方法通常會跟隨符號鏈接;要對 symlink 使用 stat 請?zhí)砑訁?shù) follow_symlinks=False,或者使用 lstat()。
>>> p = Path('setup.py')>>> p.stat().st_size956>>> p.stat().st_mtime1327883547.852554
在 3.10 版更改: 增加了 follow_symlinks 形參。
Path.chmod(mode, **, follow_symlinks=True*)
改變文件模式和權(quán)限,和 os.chmod() 一樣。
此方法通常會跟隨符號鏈接。 某些 Unix 變種支持改變 symlink 本身的權(quán)限;在這些平臺上你可以添加參數(shù) follow_symlinks=False,或者使用 lchmod()。
>>> p = Path('setup.py')>>> p.stat().st_mode33277>>> p.chmod(0o444)>>> p.stat().st_mode33060
在 3.10 版更改: 增加了 follow_symlinks 形參。
Path.exists()
此路徑是否指向一個已存在的文件或目錄:
>>> Path('.').exists()True>>> Path('setup.py').exists()True>>> Path('/etc').exists()True>>> Path('nonexistentfile').exists()False
備注
如果路徑指向一個符號鏈接, exists() 返回此符號鏈接是否指向存在的文件或目錄。
Path.expanduser()
返回帶有擴展 ~ 和 ~user 構(gòu)造的新路徑,與 os.path.expanduser() 所返回的相同。 如果無法解析家目錄,則會引發(fā) RuntimeError。
>>> p = PosixPath('~/films/Monty Python')>>> p.expanduser()PosixPath('/home/eric/films/Monty Python')
3.5 新版功能.
Path.glob(pattern)
解析相對于此路徑的通配符 pattern,產(chǎn)生所有匹配的文件:
>>> sorted(Path('.').glob('*.py'))[PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')]>>> sorted(Path('.').glob('*/*.py'))[PosixPath('docs/conf.py')]
pattern 的形式與 fnmatch 的相同,還增加了 “**“ 表示 “此目錄以及所有子目錄,遞歸”。 換句話說,它啟用遞歸通配:
>>> sorted(Path('.').glob('**/*.py'))[PosixPath('build/lib/pathlib.py'),PosixPath('docs/conf.py'),PosixPath('pathlib.py'),PosixPath('setup.py'),PosixPath('test_pathlib.py')]
備注
在一個較大的目錄樹中使用 “**“ 模式可能會消耗非常多的時間。
引發(fā)一個 審計事件 pathlib.Path.glob 附帶參數(shù) self, pattern。
在 3.11 版更改: Return only directories if pattern ends with a pathname components separator (sep or altsep).
Path.group()
返回擁有此文件的用戶組。如果文件的 GID 無法在系統(tǒng)數(shù)據(jù)庫中找到,將拋出 KeyError 。
Path.is_dir()
如果路徑指向一個目錄(或者一個指向目錄的符號鏈接)則返回 True,如果指向其他類型的文件則返回 False。
當路徑不存在或者是一個破損的符號鏈接時也會返回 False;其他錯誤(例如權(quán)限錯誤)被傳播。
Path.is_file()
如果路徑指向一個正常的文件(或者一個指向正常文件的符號鏈接)則返回 True,如果指向其他類型的文件則返回 False。
當路徑不存在或者是一個破損的符號鏈接時也會返回 False;其他錯誤(例如權(quán)限錯誤)被傳播。
Path.is_mount()
如果路徑是一個 掛載點 path/.. 是否處于一個和 path 不同的設(shè)備中,或者 file:path/.. 和 path 是否指向相同設(shè)備的相同 i-node —— 這能檢測所有 Unix 以及 POSIX 變種上的掛載點。 Windows 上未實現(xiàn)。
3.7 新版功能.
Path.is_symlink()
如果路徑指向符號鏈接則返回 True, 否則 False。
如果路徑不存在也返回 False;其他錯誤(例如權(quán)限錯誤)被傳播。
Path.is_socket()
如果路徑指向一個 Unix socket 文件(或者指向 Unix socket 文件的符號鏈接)則返回 True,如果指向其他類型的文件則返回 False。
當路徑不存在或者是一個破損的符號鏈接時也會返回 False;其他錯誤(例如權(quán)限錯誤)被傳播。
Path.is_fifo()
如果路徑指向一個先進先出存儲(或者指向先進先出存儲的符號鏈接)則返回 True ,指向其他類型的文件則返回 False。
當路徑不存在或者是一個破損的符號鏈接時也會返回 False;其他錯誤(例如權(quán)限錯誤)被傳播。
Path.is_block_device()
如果文件指向一個塊設(shè)備(或者指向塊設(shè)備的符號鏈接)則返回 True,指向其他類型的文件則返回 False。
當路徑不存在或者是一個破損的符號鏈接時也會返回 False;其他錯誤(例如權(quán)限錯誤)被傳播。
Path.is_char_device()
如果路徑指向一個字符設(shè)備(或指向字符設(shè)備的符號鏈接)則返回 True,指向其他類型的文件則返回 False。
當路徑不存在或者是一個破損的符號鏈接時也會返回 False;其他錯誤(例如權(quán)限錯誤)被傳播。
Path.iterdir()
當路徑指向一個目錄時,產(chǎn)生該路徑下的對象的路徑:
>>> p = Path('docs')>>> for child in p.iterdir(): child...PosixPath('docs/conf.py')PosixPath('docs/_templates')PosixPath('docs/make.bat')PosixPath('docs/index.rst')PosixPath('docs/_build')PosixPath('docs/_static')PosixPath('docs/Makefile')
子條目會以任意順序生成,并且不包括特殊條目 '.' 和 '..'。 如果迭代器創(chuàng)建之后有文件在目錄中被移除或添加,是否要包括該文件所對應的路徑對象并沒有明確規(guī)定。
Path.lchmod(mode)
就像 Path.chmod() 但是如果路徑指向符號鏈接則是修改符號鏈接的模式,而不是修改符號鏈接的目標。
Path.lstat()
就和 Path.stat() 一樣,但是如果路徑指向符號鏈接,則是返回符號鏈接而不是目標的信息。
Path.mkdir(mode=0o777, parents=False, exist_ok=False
當前文章:創(chuàng)新互聯(lián)Python教程:pathlib—-面向?qū)ο蟮奈募到y(tǒng)路徑
鏈接地址:http://www.dlmjj.cn/article/djdjhph.html


咨詢
建站咨詢
