pathlib - Trực tuyến trên đám mây

Đây là đường dẫn lệnh có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


pathlib - Tài liệu pathlib

Thao tác với các đường dẫn hệ thống tệp như các đối tượng chuỗi có thể nhanh chóng trở nên cồng kềnh: nhiều
gọi đến os.path.join () or os.path.dirname (), v.v. Mô-đun này cung cấp một tập hợp các lớp
có tất cả các hoạt động phổ biến trên đường dẫn một cách dễ dàng, hướng đối tượng.

Mô-đun này được sử dụng tốt nhất với Python 3.2 trở lên, nhưng nó cũng tương thích với Python
2.7.

LƯU Ý:
Mô-đun này đã được bao gồm trong thư viện chuẩn Python 3.4 sau PEP 428
chấp thuận. Bạn chỉ cần cài đặt nó cho Python 3.3 trở lên.

XEM CŨNG THẾ:
PEP 428: Cơ sở lý luận cho thiết kế đường dẫn cuối cùng và API.

TẢI VỀ


Các bản phát hành độc lập có sẵn trên PyPI: http://pypi.python.org/pypi/pathlib/

Quá trình phát triển chính hiện diễn ra trong thư viện chuẩn Python: xem Python
nhà phát triển hướng dẫn.

Bạn có thể tìm thấy kho bảo trì cho mô-đun backport độc lập này trên BitBucket,
nhưng hoạt động dự kiến ​​sẽ khá thấp: https://bitbucket.org/pitrou/pathlib/

CẤP ĐỘ CAO XEM


Mô-đun này cung cấp các lớp đại diện cho các đường dẫn hệ thống tệp với ngữ nghĩa thích hợp cho
hệ điều hành khác nhau. Các lớp đường dẫn được phân chia giữa tinh khiết đường dẫn, cung cấp
các hoạt động tính toán hoàn toàn không có I / O và bê tông đường dẫn, kế thừa từ nguyên chất
mà còn cung cấp các hoạt động I / O. [hình ảnh]

Nếu bạn chưa từng sử dụng mô-đun này trước đây hoặc chỉ không chắc lớp nào phù hợp với
nhiệm vụ, Đường dẫn rất có thể là những gì bạn cần. Nó tạo ra một bê tông con đường cho nền tảng
mã đang chạy.

Các đường dẫn thuần túy rất hữu ích trong một số trường hợp đặc biệt; Ví dụ:

1. Nếu bạn muốn thao tác các đường dẫn Windows trên máy Unix (hoặc ngược lại). Bạn không thể
tạo ra một Đường dẫn Windows khi chạy trên Unix, nhưng bạn có thể khởi tạo
Con Đường Cửa Sổ Tinh Khiết.

2. Bạn muốn đảm bảo rằng mã của bạn chỉ thao tác các đường dẫn mà không thực sự truy cập
hệ điều hành. Trong trường hợp này, việc khởi tạo một trong các lớp thuần túy có thể hữu ích vì những
đơn giản là không có bất kỳ hoạt động truy cập hệ điều hành nào.

BASIC SỬ DỤNG


Nhập các lớp mô-đun:

>>> từ nhập pathlib *

Liệt kê các thư mục con:

>>> p = Đường dẫn ('.')
>>> [x for x in p.iterdir () if x.is_dir ()]
[PosixPath ('. Hg'), PosixPath ('docs'), PosixPath ('dist'),
PosixPath ('__ pycache__'), PosixPath ('build')]

Liệt kê các tệp nguồn Python trong cây thư mục này:

>>> danh sách (p.glob ('** / *. py'))
[PosixPath ('test_pathlib.py'), PosixPath ('setup.py'),
PosixPath ('pathlib.py'), PosixPath ('docs / conf.py'),
PosixPath ('build / lib / pathlib.py')]

Điều hướng bên trong cây thư mục:

>>> p = Đường dẫn ('/ Etc')
>>> q = p / 'init.d' / 'khởi động lại'
>>> q
PosixPath ('/etc/init.d/reboot')
>>> q.resolve ()
PosixPath ('/ etc / rc.d / init.d / halt')

Truy vấn thuộc tính đường dẫn:

>>> q.exists ()
Thật
>>> q.is_dir ()
Sai

Mở tệp:

>>> với q.open () là f: f.readline ()
...
'#!/ bin / bash\n'

NGUYÊN CHẤT CON ĐƯỜNG


Các đối tượng đường dẫn thuần túy cung cấp các hoạt động xử lý đường dẫn không thực sự truy cập vào
hệ thống tập tin. Có ba cách để truy cập các lớp này, chúng tôi còn gọi là hương vị:

tốt nghiệp lớp XNUMX pathlib.PurePath (* phân đoạn đường dẫn)
Một lớp chung đại diện cho hương vị đường dẫn của hệ thống (khởi tạo nó tạo ra
cũng là một Đường dẫn PurePosix hoặc một Con Đường Cửa Sổ Tinh Khiết):

>>> PurePath ('setup.py') # Chạy trên máy Unix
PurePosixPath ('setup.py')

Mỗi phần tử của đoạn đường có thể là một chuỗi hoặc đối tượng byte đại diện cho một
đoạn đường dẫn; nó cũng có thể là một đối tượng đường dẫn khác:

>>> PurePath ('foo', 'some / path', 'bar')
PurePosixPath ('foo / some / path / bar')
>>> PurePath (Đường dẫn ('foo'), Đường dẫn ('thanh'))
PurePosixPath ('foo / bar')

Thời Gian đoạn đường trống, thư mục hiện tại được giả định:

>>> PurePath ()
PurePosixPath ('.')

Khi một số đường dẫn tuyệt đối được đưa ra, đường dẫn cuối cùng được coi là điểm neo (bắt chước
os.path.join ()hành vi của):

>>> PurePath ('/ Etc''/ usr',' lib64 ')
PurePosixPath ('/ usr / lib64')
>>> PureWindowsPath ('c: / Windows', 'd: bar')
PureWindowsPath ('d: bar')

Tuy nhiên, trong đường dẫn Windows, việc thay đổi gốc cục bộ không loại bỏ phần trước đó
cài đặt ổ đĩa:

>>> PureWindowsPath ('c: / Windows', '/ Program Files')
PureWindowsPath ('c: / Program Files')

Dấu gạch chéo giả và dấu chấm đơn được thu gọn, nhưng dấu chấm kép ('..') không,
vì điều này sẽ thay đổi ý nghĩa của một đường dẫn khi đối mặt với các liên kết tượng trưng:

>>> PurePath ('foo // bar')
PurePosixPath ('foo / bar')
>>> PurePath ('foo /./ bar')
PurePosixPath ('foo / bar')
>>> PurePath ('foo /../ bar')
PurePosixPath ('foo /../ bar')

(một cách tiếp cận ngây thơ sẽ làm cho PurePosixPath ('foo /../ bar') tương đương với
PurePosixPath ('thanh'), điều đó là sai nếu foo là một liên kết tượng trưng với một liên kết khác
danh mục)

tốt nghiệp lớp XNUMX pathlib.PurePosixPath (* phân đoạn đường dẫn)
Một lớp con của Đường dẫn tinh khiết, hương vị đường dẫn này đại diện cho các đường dẫn hệ thống tệp không phải Windows:

>>> PurePosixPath ('/ Etc')
PurePosixPath ('/ Etc')

đoạn đường được chỉ định tương tự như Đường dẫn tinh khiết.

tốt nghiệp lớp XNUMX pathlib.PureWindowsPath (* phân đoạn đường dẫn)
Một lớp con của Đường dẫn tinh khiết, hương vị đường dẫn này đại diện cho các đường dẫn hệ thống tệp Windows:

>>> PureWindowsPath ('c: / Program Files /')
PureWindowsPath ('c: / Program Files')

đoạn đường được chỉ định tương tự như Đường dẫn tinh khiết.

Bất kể hệ thống bạn đang chạy là gì, bạn có thể khởi tạo tất cả các lớp này,
vì họ không cung cấp bất kỳ hoạt động nào thực hiện lệnh gọi hệ thống.

Tổng quan tài sản
Đường dẫn là bất biến và có thể băm. Các đường dẫn của cùng một hương vị có thể so sánh và có thể kiểm tra được.
Những đặc tính này tôn trọng ngữ nghĩa gấp chữ hoa của hương liệu:

>>> PurePosixPath ('foo') == PurePosixPath ('FOO')
Sai
>>> PureWindowsPath ('foo') == PureWindowsPath ('FOO')
Thật
>>> PureWindowsPath ('FOO') trong {PureWindowsPath ('foo')}
Thật
>>> PureWindowsPath ('C:') <PureWindowsPath ('d:')
Thật

Các đường của một hương vị khác nhau so sánh không bằng nhau và không thể được sắp xếp theo thứ tự:

>>> PureWindowsPath ('foo') == PurePosixPath ('foo')
Sai
>>> PureWindowsPath ('foo') <PurePosixPath ('foo')
Traceback (cuộc gọi gần đây nhất cuối cùng):
Tập tin " ", dòng 1, trong
TypeError: các loại không thể sửa được: PureWindowsPath () <PurePosixPath ()

Các nhà khai thác
Toán tử dấu gạch chéo giúp tạo đường dẫn con, tương tự như os.path.join:

>>> p = PurePath ('/ Etc')
>>> p
PurePosixPath ('/ Etc')
>>> p / 'init.d' / 'apache2'
PurePosixPath ('/etc/init.d/apache2')
>>> q = PurePath ('bin')
>>> '/ usr'/ q
PurePosixPath ('/ usr / bin')

Biểu diễn chuỗi của một đường dẫn là bản thân đường dẫn hệ thống tệp thô (ở dạng gốc,
ví dụ với dấu gạch chéo ngược trong Windows), bạn có thể chuyển cho bất kỳ hàm nào lấy tệp
đường dẫn dưới dạng một chuỗi:

>>> p = PurePath ('/ Etc')
>>> str (p)
'/ Etc'
>>> p = PureWindowsPath ('c: / Program Files')
>>> str (p)
'c: \\ Program Files'

Tương tự, gọi byte trên một đường dẫn cung cấp cho đường dẫn hệ thống tệp thô dưới dạng đối tượng byte, như
Được mã hoá bởi os.fsencode:

>>> byte (p)
b'/ Etc'

Truy cập hệ thống riêng biệt, các bộ phận
Để truy cập từng "phần" (thành phần) của đường dẫn, hãy sử dụng thuộc tính sau:

PurePath.parts
Một bộ tuple cấp quyền truy cập vào các thành phần khác nhau của đường dẫn:

>>> p = PurePath ('/ usr / bin / python3')
>>> p.parts
('/', 'usr', 'bin', 'python3')

>>> p = PureWindowsPath ('c: / Program Files / PSF')
>>> p.parts
('c: \\', 'Tệp chương trình', 'PSF')

(lưu ý cách ổ đĩa và gốc cục bộ được tập hợp lại trong một phần duy nhất)

Phương pháp tài sản
Đường dẫn thuần túy cung cấp các phương thức và thuộc tính sau:

PurePath.drive
Một chuỗi đại diện cho tên hoặc ký tự ổ đĩa, nếu có:

>>> PureWindowsPath ('c: / Program Files /'). Ổ đĩa
'C:'
>>> PureWindowsPath ('/ Program Files /'). Ổ đĩa
''
>>> PurePosixPath ('/ Etc').lái xe
''

Cổ phiếu UNC cũng được coi là động lực:

>>> PureWindowsPath ('// host / share / foo.txt'). Ổ đĩa
'\\\\ máy chủ \\ chia sẻ'

PurePath.root
Một chuỗi đại diện cho gốc (cục bộ hoặc toàn cục), nếu có:

>>> PureWindowsPath ('c: / Program Files /'). Root
'\\'
>>> PureWindowsPath ('c: Program Files /'). Root
''
>>> PurePosixPath ('/ Etc').nguồn gốc
'/'

Chia sẻ UNC luôn có gốc:

>>> PureWindowsPath ('// host / share'). Root
'\\'

PurePath.anchor
Sự kết hợp của ổ đĩa và gốc:

>>> PureWindowsPath ('c: / Program Files /'). Anchor
'C:\\'
>>> PureWindowsPath ('c: Program Files /'). Anchor
'C:'
>>> PurePosixPath ('/ Etc').mỏ neo
'/'
>>> PureWindowsPath ('// host / share'). Neo
'\\\\ máy chủ \\ chia sẻ \\'

PurePath. Cha mẹ
Một chuỗi bất biến cung cấp quyền truy cập vào tổ tiên logic của đường dẫn:

>>> p = PureWindowsPath ('c: /foo/bar/setup.py')
>>> p.hệ [0]
PureWindowsPath ('c: / foo / bar')
>>> p.hệ [1]
PureWindowsPath ('c: / foo')
>>> p.hệ [2]
PureWindowsPath ('c: /')

PurePath.parent
Cha hợp lý của đường dẫn:

>>> p = PurePosixPath ('/ a / b / c / d')
>>> p.parent
PurePosixPath ('/ a / b / c')

Bạn không thể đi qua một mỏ neo hoặc đường dẫn trống:

>>> p = PurePosixPath ('/')
>>> p.parent
PurePosixPath ('/')
>>> p = PurePosixPath ('.')
>>> p.parent
PurePosixPath ('.')

LƯU Ý:
Đây là một phép toán thuần túy từ vựng, do đó có hành vi sau:

>>> p = PurePosixPath ('foo / ..')
>>> p.parent
PurePosixPath ('foo')

Nếu bạn muốn đi một đường dẫn hệ thống tệp tùy ý lên trên, bạn nên
cuộc gọi đầu tiên Path.resolve () để giải quyết các liên kết tượng trưng và loại bỏ ".."
các thành phần.

PurePath.name
Một chuỗi đại diện cho thành phần đường dẫn cuối cùng, không bao gồm ổ đĩa và gốc, nếu
bất kì:

>>> PurePosixPath ('my / library / setup.py'). Name
'setup.py'

Tên ổ UNC không được coi là:

>>> PureWindowsPath ('// some / share / setup.py'). Name
'setup.py'
>>> PureWindowsPath ('// some / share'). Name
''

PurePath.suffix
Phần mở rộng tệp của thành phần cuối cùng, nếu có:

>>> PurePosixPath ('my / library / setup.py'). Hậu tố
'.py'
>>> PurePosixPath (hậu tố 'my / library.tar.gz').
'.gz'
>>> PurePosixPath (hậu tố 'my / library').
''

PurePath.suffixes
Danh sách các phần mở rộng tệp của đường dẫn:

>>> PurePosixPath (hậu tố 'my / library.tar.gar').
['.tar', '.gar']
>>> PurePosixPath (hậu tố 'my / library.tar.gz').
['.tar', '.gz']
>>> PurePosixPath (hậu tố 'my / library').
[]

PurePath.stem
Thành phần đường dẫn cuối cùng, không có hậu tố của nó:

>>> PurePosixPath ('my / library.tar.gz'). Gốc
'library.tar'
>>> PurePosixPath ('my / library.tar'). Gốc
'thư viện'
>>> PurePosixPath ('my / library'). Gốc
'thư viện'

PurePath.as_posix ()
Trả về biểu diễn chuỗi của đường dẫn với dấu gạch chéo về phía trước (/):

>>> p = PureWindowsPath ('c: \\ windows')
>>> str (p)
'c: \\ cửa sổ'
>>> p.as_posix ()
'c: / windows'

PurePath.as_uri ()
Biểu diễn đường dẫn dưới dạng hồ sơ LOẠI HÌNH. Giá trịError được nâng lên nếu đường dẫn không phải là tuyệt đối.

>>> p = PurePosixPath ('/ etc / passwd')
>>> p.as_uri ()
'tập tin:/// etc / passwd'
>>> p = PureWindowsPath ('c: / Windows')
>>> p.as_uri ()
'tệp: /// c: / Windows'

PurePath.is_absolute ()
Trả lại cho dù đường dẫn là tuyệt đối hay không. Một đường dẫn được coi là tuyệt đối nếu nó
có cả gốc và (nếu hương vị cho phép) một ổ đĩa:

>>> PurePosixPath ('/ a / b'). Is_absolute ()
Thật
>>> PurePosixPath ('a / b'). Is_absolute ()
Sai

>>> PureWindowsPath ('c: / a / b'). Is_absolute ()
Thật
>>> PureWindowsPath ('/ a / b'). Is_absolute ()
Sai
>>> PureWindowsPath ('c:'). Is_absolute ()
Sai
>>> PureWindowsPath ('// some / share'). Is_absolute ()
Thật

PurePath.is_reserved ()
Với Con Đường Cửa Sổ Tinh Khiết, trở về Thật nếu đường dẫn được coi là dành riêng trong Windows,
Sai nếu không thì. Với Đường dẫn PurePosix, Sai luôn luôn được trả lại.

>>> PureWindowsPath ('nul'). Is_reserved ()
Thật
>>> PurePosixPath ('nul'). Is_reserved ()
Sai

Các lệnh gọi hệ thống tệp trên các đường dẫn dành riêng có thể không thành công một cách bí ẩn hoặc xảy ra ngoài ý muốn
hiệu ứng.

PurePath.joinpath (* khác)
Gọi phương thức này tương đương với việc kết hợp đường dẫn với mỗi khác
lần lượt các đối số:

>>> 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 (mẫu)
Khớp đường dẫn này với mẫu kiểu hình cầu được cung cấp. Trở lại Thật nếu phù hợp
là thành công, Sai nếu không thì.

If Belt Hold là tương đối, đường dẫn có thể tương đối hoặc tuyệt đối và phù hợp
được thực hiện từ bên phải:

>>> PurePath ('a / b.py'). Match ('*. Py')
Thật
>>> PurePath ('/ a / b / c.py'). Match ('b / *. Py')
Thật
>>> PurePath ('/ a / b / c.py'). Match ('a / *. Py')
Sai

If Belt Hold là tuyệt đối, đường dẫn phải tuyệt đối và toàn bộ đường dẫn phải khớp:

>>> PurePath ('/ a.py'). Match ('/ *. Py')
Thật
>>> PurePath ('a / b.py'). Match ('/ *. Py')
Sai

Như với các phương pháp khác, phân biệt chữ hoa chữ thường được quan sát:

>>> PureWindowsPath ('b.py'). Match ('*. PY')
Thật

PurePath.relative_to (* khác)
Tính toán một phiên bản của đường dẫn này so với đường dẫn được đại diện bởi khác. Nếu nó
không thể, ValueError được nâng lên:

>>> p = PurePosixPath ('/ etc / passwd')
>>> p.relative_to ('/')
PurePosixPath ('etc / passwd')
>>> p.relative_to ('/ Etc')
PurePosixPath ('passwd')
>>> p.relative_to ('/ usr')
Traceback (cuộc gọi gần đây nhất cuối cùng):
Tập tin " ", dòng 1, trong
Tệp "pathlib.py", dòng 694, trong rel_to
.format (str (self), str (định dạng)))
ValueError: '/ etc / passwd'không bắt đầu bằng'/ usr'

PurePath.with_name (tên)
Trả lại một con đường mới với tên đã thay đổi. Nếu đường dẫn ban đầu không có tên,
ValueError được nâng lên:

>>> 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 (cuộc gọi gần đây nhất cuối cùng):
Tập tin " ", dòng 1, trong
Tệp "/home/antoine/cpython/default/Lib/pathlib.py", dòng 751, trong with_name
tăng ValueError ("% r có tên trống"% (self,))
ValueError: PureWindowsPath ('c: /') có tên trống

PurePath.with_suffix (hậu tố)
Trả lại một con đường mới với hậu tố đã thay đổi. Nếu đường dẫn ban đầu không có
hậu tố, mới hậu tố được thêm vào để thay thế:

>>> 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')

BÊ TÔNG CON ĐƯỜNG


Các đường dẫn bê tông là các lớp con của các lớp đường dẫn thuần túy. Ngoài các hoạt động
được cung cấp bởi cái sau, chúng cũng cung cấp các phương thức để thực hiện các lệnh gọi hệ thống trên các đối tượng đường dẫn.
Có ba cách để tạo đường dẫn cụ thể:

tốt nghiệp lớp XNUMX pathlib.Path (* phân đoạn đường dẫn)
Một lớp con của Đường dẫn tinh khiết, lớp này đại diện cho các đường dẫn cụ thể của đường dẫn của hệ thống
hương vị (tức thì nó tạo ra một Đường dẫn Posix hoặc một Đường dẫn Windows):

>>> Đường dẫn ('setup.py')
PosixPath ('setup.py')

đoạn đường được chỉ định tương tự như Đường dẫn tinh khiết.

tốt nghiệp lớp XNUMX pathlib.PosixPath (* phân đoạn đường dẫn)
Một lớp con của Đường dẫnĐường dẫn PurePosix, lớp này thể hiện cụ thể không phải Windows
đường dẫn hệ thống tệp:

>>> PosixPath ('/ Etc')
PosixPath ('/ Etc')

đoạn đường được chỉ định tương tự như Đường dẫn tinh khiết.

tốt nghiệp lớp XNUMX pathlib.WindowsPath (* phân đoạn đường dẫn)
Một lớp con của Đường dẫnCon Đường Cửa Sổ Tinh Khiết, lớp này đại diện cho Windows cụ thể
đường dẫn hệ thống tệp:

>>> WindowsPath ('c: / Program Files /')
WindowsPath ('c: / Program Files')

đoạn đường được chỉ định tương tự như Đường dẫn tinh khiết.

Bạn chỉ có thể khởi tạo hương vị lớp tương ứng với hệ thống của mình (cho phép
lệnh gọi hệ thống trên các hương vị đường dẫn không tương thích có thể dẫn đến lỗi hoặc lỗi trong
đơn xin):

>>> nhập hệ điều hành
>>> os.name
'posix'
>>> Đường dẫn ('setup.py')
PosixPath ('setup.py')
>>> PosixPath ('setup.py')
PosixPath ('setup.py')
>>> WindowsPath ('setup.py')
Traceback (cuộc gọi gần đây nhất cuối cùng):
Tập tin " ", dòng 1, trong
Tệp "pathlib.py", dòng 798, trong __new__
% (cls .__ name__,))
NotImplementedError: không thể khởi tạo 'WindowsPath' trên hệ thống của bạn

Phương pháp
Đường dẫn bê tông cung cấp các phương pháp sau ngoài các phương pháp đường dẫn thuần túy. Nhiều
những phương pháp này có thể nâng cao Hệ điều hànhLỗi nếu một lệnh gọi hệ thống không thành công (ví dụ: vì đường dẫn
không tồn tại):

lớp học Path.cwd ()
Trả về một đối tượng đường dẫn mới đại diện cho thư mục hiện tại (được trả về bởi
os.getcwd ()):

>>> Path.cwd ()
PosixPath ('/ home / antoine / pathlib')

Path.stat ()
Trả lại thông tin về đường dẫn này (tương tự như os.stat ()). Kết quả được nhìn
mỗi lần gọi đến phương thức này.

>>> p = Đường dẫn ('setup.py')
>>> p.stat (). st_size
956
>>> p.stat (). st_mtime
1327883547.852554

Đường dẫn.chmod(chế độ)
Thay đổi chế độ tệp và quyền, như os.chmod ():

>>> p = Đường dẫn ('setup.py')
>>> p.stat (). st_mode
33277
>>> p.chmod(0o444)
>>> p.stat (). st_mode
33060

Path.exists ()
Liệu đường dẫn có trỏ đến tệp hoặc thư mục hiện có hay không:

>>> từ nhập pathlib *
>>> Đường dẫn ('.'). Tồn tại ()
Thật
>>> Đường dẫn ('setup.py'). Tồn tại ()
Thật
>>> Đường dẫn ('/ Etc') .exists ()
Thật
>>> Đường dẫn ('tệp không tồn tại'). Tồn tại ()
Sai

Path.glob (mẫu)
Glob cái đã cho Belt Hold trong thư mục được đại diện bởi đường dẫn này, mang lại tất cả
các tệp phù hợp (thuộc bất kỳ loại nào):

>>> đã sắp xếp (Đường dẫn ('.'). global ('*. py'))
[PosixPath ('pathlib.py'), PosixPath ('setup.py'), PosixPath ('test_pathlib.py')]
>>> đã sắp xếp (Đường dẫn ('.'). global ('* / *. py'))
[PosixPath ('docs / conf.py')]

The "**"pattern có nghĩa là" thư mục này và tất cả các thư mục con, một cách đệ quy ". Trong
nói cách khác, nó cho phép đánh bóng đệ quy:

>>> đã sắp xếp (Đường dẫn ('.'). global ('** / *. py'))
[PosixPath ('build / lib / pathlib.py'),
PosixPath ('docs / conf.py'),
PosixPath ('pathlib.py'),
PosixPath ('setup.py'),
PosixPath ('test_pathlib.py')]

LƯU Ý:
Sử dụng "**"mô hình trong cây thư mục lớn có thể tiêu tốn một lượng lớn
thời gian.

Path.group ()
Trả lại tên của nhóm sở hữu tệp. Lỗi chính được nâng lên nếu gid của tệp
không được tìm thấy trong cơ sở dữ liệu hệ thống.

Path.is_dir ()
Trả hàng Thật nếu đường dẫn trỏ đến một thư mục (hoặc một liên kết tượng trưng trỏ đến một
danh mục), Sai nếu nó trỏ đến một loại tệp khác.

Sai cũng được trả về nếu đường dẫn không tồn tại hoặc là một liên kết tượng trưng bị hỏng; khác
lỗi (chẳng hạn như lỗi quyền) được lan truyền.

Path.is_file ()
Trả hàng Thật nếu đường dẫn trỏ đến một tệp thông thường (hoặc một liên kết tượng trưng trỏ đến một
tệp thông thường), Sai nếu nó trỏ đến một loại tệp khác.

Sai cũng được trả về nếu đường dẫn không tồn tại hoặc là một liên kết tượng trưng bị hỏng; khác
lỗi (chẳng hạn như lỗi quyền) được lan truyền.

Path.is_symlink ()
Trả hàng Thật nếu đường dẫn trỏ đến một liên kết tượng trưng, Sai nếu không thì.

Sai cũng được trả về nếu đường dẫn không tồn tại; các lỗi khác (chẳng hạn như quyền
lỗi) được truyền.

Path.is_socket ()
Trả hàng Thật nếu đường dẫn trỏ đến một ổ cắm Unix (hoặc một liên kết tượng trưng trỏ đến một
Ổ cắm Unix), Sai nếu nó trỏ đến một loại tệp khác.

Sai cũng được trả về nếu đường dẫn không tồn tại hoặc là một liên kết tượng trưng bị hỏng; khác
lỗi (chẳng hạn như lỗi quyền) được lan truyền.

Path.is_fifo ()
Trả hàng Thật nếu đường dẫn trỏ đến FIFO (hoặc một liên kết tượng trưng trỏ đến FIFO),
Sai nếu nó trỏ đến một loại tệp khác.

Sai cũng được trả về nếu đường dẫn không tồn tại hoặc là một liên kết tượng trưng bị hỏng; khác
lỗi (chẳng hạn như lỗi quyền) được lan truyền.

Path.is_block_device ()
Trả hàng Thật nếu đường dẫn trỏ đến một thiết bị khối (hoặc một liên kết tượng trưng trỏ đến một
khối thiết bị), Sai nếu nó trỏ đến một loại tệp khác.

Sai cũng được trả về nếu đường dẫn không tồn tại hoặc là một liên kết tượng trưng bị hỏng; khác
lỗi (chẳng hạn như lỗi quyền) được lan truyền.

Path.is_char_device ()
Trả hàng Thật nếu đường dẫn trỏ đến một thiết bị ký tự (hoặc một liên kết tượng trưng trỏ đến
đến một thiết bị ký tự), Sai nếu nó trỏ đến một loại tệp khác.

Sai cũng được trả về nếu đường dẫn không tồn tại hoặc là một liên kết tượng trưng bị hỏng; khác
lỗi (chẳng hạn như lỗi quyền) được lan truyền.

Path.iterdir ()
Khi đường dẫn trỏ đến một thư mục, hãy nhường các đối tượng đường dẫn của nội dung thư mục:

>>> p = Đường dẫn ('docs')
>>> for child trong 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')

Đường dẫn.lchmod(chế độ)
Như Path.chmod () nhưng, nếu đường dẫn trỏ đến một liên kết tượng trưng, ​​thì liên kết tượng trưng
chế độ được thay đổi thay vì mục tiêu của nó.

Path.lstat ()
Như Path.stat () nhưng, nếu đường dẫn trỏ đến một liên kết tượng trưng, ​​hãy trả về biểu tượng
thông tin của liên kết hơn là mục tiêu của nó.

Path.mkdir (mode = 0o777, cha mẹ = Sai)
Tạo một thư mục mới tại đường dẫn đã cho này. Nếu như chế độ được đưa ra, nó được kết hợp với
quá trình' cái ô giá trị để xác định chế độ tệp và cờ truy cập. Nếu con đường
đã tồn tại, Hệ điều hànhLỗi được nuôi dưỡng.

If cha mẹ là đúng, bất kỳ cha mẹ bị mất tích nào của đường dẫn này đều được tạo ra khi cần thiết; họ
được tạo với các quyền mặc định mà không sử dụng chế độ vào tài khoản
(bắt chước POSIX mkdir -p chỉ huy).

If cha mẹ là false (mặc định), một phụ huynh bị thiếu tăng Hệ điều hànhLỗi.

Path.open (mode = 'r', đệm = -1, encoding = Không có, lỗi = Không có, dòng mới = Không có)
Mở tệp được trỏ tới bằng đường dẫn, như tệp tích hợp sẵn mở() chức năng nào:

>>> p = Đường dẫn ('setup.py')
>>> với p.open () là f:
... f.readline ()
...
'#!/ usr / bin / env python3 \ n '

Path.owner ()
Trả lại tên của người dùng sở hữu tệp. Lỗi chính được nâng lên nếu uid của tệp
không được tìm thấy trong cơ sở dữ liệu hệ thống.

Path.rename (target)
Đổi tên tệp hoặc thư mục này thành tệp đã cho mục tiêu. mục tiêu có thể là một chuỗi
hoặc một đối tượng đường dẫn khác:

>>> p = Đường dẫn ('foo')
>>> p.open ('w'). write ('một số văn bản')
9
>>> target = Path ('bar')
>>> p.rename (target)
>>> target.open (). read ()
'một số tiếp theo'

Path.replace (mục tiêu)
Đổi tên tệp hoặc thư mục này thành tệp đã cho mục tiêu. Nếu mục tiêu trỏ đến một hiện tại
tệp hoặc thư mục, nó sẽ được thay thế vô điều kiện.

Phương pháp này chỉ khả dụng với Python 3.3; nó sẽ tăng lên NotImplementedLỗi on
các phiên bản Python trước.

Path.resolve ()
Tạo đường dẫn tuyệt đối, giải quyết mọi liên kết tượng trưng. Một đối tượng đường dẫn mới được trả về:

>>> p = Đường dẫn ()
>>> p
PosixPath ('.')
>>> p.resolve ()
PosixPath ('/ home / antoine / pathlib')

".." các thành phần cũng bị loại bỏ (đây là phương pháp duy nhất để làm như vậy):

>>> p = Đường dẫn ('docs /../ setup.py')
>>> p.resolve ()
PosixPath ('/ home / antoine / pathlib / setup.py')

Nếu đường dẫn không tồn tại, Hệ điều hànhLỗi được nuôi dưỡng. Nếu một vòng lặp vô hạn là
gặp phải dọc theo đường giải quyết, Lỗi runtime được nuôi dưỡng.

Path.rglob (mẫu)
Điều này giống như cách gọi cầu () với "**"được thêm vào trước Belt Hold:

>>> đã sắp xếp (Đường dẫn (). rglob ("*. py"))
[PosixPath ('build / lib / pathlib.py'),
PosixPath ('docs / conf.py'),
PosixPath ('pathlib.py'),
PosixPath ('setup.py'),
PosixPath ('test_pathlib.py')]

Path.rmdir ()
Xóa thư mục này. Thư mục phải trống.

Path.symlink_to (target, target_is_directory = Sai)
Đặt đường dẫn này thành một liên kết tượng trưng đến mục tiêu. Trong Windows, thư mục target_is_ phải
đúng (mặc định Sai) nếu mục tiêu của liên kết là một thư mục. Trong POSIX,
thư mục target_is_giá trị của bị bỏ qua.

>>> p = Đường dẫn ('mylink')
>>> p.symlink_to ('setup.py')
>>> p.resolve ()
PosixPath ('/ home / antoine / pathlib / setup.py')
>>> p.stat (). st_size
956
>>> p.lstat (). st_size
8

LƯU Ý:
Thứ tự của các đối số (liên kết, đích) là đảo ngược của os.symlink ()'S.

Path.touch (mode = 0o777, tồn tại = True)
Tạo một tệp tại đường dẫn đã cho này. Nếu như chế độ được đưa ra, nó được kết hợp với
tiến trình' cái ô giá trị để xác định chế độ tệp và cờ truy cập. Nếu tệp
đã tồn tại, chức năng thành công nếu tồn_tại là đúng (và sửa đổi của nó
thời gian được cập nhật thành thời điểm hiện tại), nếu không Hệ điều hànhLỗi được nuôi dưỡng.

Path.unlink ()
Xóa tệp này hoặc liên kết tượng trưng. Nếu đường dẫn trỏ đến một thư mục, hãy sử dụng
Path.rmdir () thay thế.

Sử dụng đường dẫn trực tuyến bằng các dịch vụ onworks.net



Các chương trình trực tuyến Linux & Windows mới nhất