Hướng dẫn python pathlib add filename to path - python pathlib thêm tên tệp vào đường dẫn
Mã sau: Show
Nhận lỗi sau:
Tôi rõ ràng đang làm điều gì đó mờ ám ở đây, nhưng nó đặt ra câu hỏi: Làm cách nào để truy cập vào một thư mục con của đối tượng >>> list(p.glob('**/*.py')) [PosixPath('test_pathlib.py'), PosixPath('setup.py'), PosixPath('pathlib.py'), PosixPath('docs/conf.py'), PosixPath('build/lib/pathlib.py')]0?
Georgy 11.1k7 Huy hiệu vàng62 Huy hiệu bạc70 Huy hiệu đồng7 gold badges62 silver badges70 bronze badges Hỏi ngày 10 tháng 1 năm 2018 lúc 15:37Jan 10, 2018 at 15:37
3
Resources:
Đã trả lời ngày 10 tháng 1 năm 2018 lúc 15:41Jan 10, 2018 at 15:41
Ray Salemiray SalemiRay Salemi 4.5574 Huy hiệu vàng25 Huy hiệu bạc55 Huy hiệu Đồng4 gold badges25 silver badges55 bronze badges 0 Những gì bạn đang tìm kiếm là:
Hàm >>> list(p.glob('**/*.py')) [PosixPath('test_pathlib.py'), PosixPath('setup.py'), PosixPath('pathlib.py'), PosixPath('docs/conf.py'), PosixPath('build/lib/pathlib.py')]5 sẽ nối tham số thứ hai vào mục thứ nhất và thêm '/' cho bạn. Đã trả lời ngày 10 tháng 1 năm 2018 lúc 15:43Jan 10, 2018 at 15:43
r.ookr.ookr.ook 13.1k2 Huy hiệu vàng21 Huy hiệu bạc38 Huy hiệu đồng2 gold badges21 silver badges38 bronze badges 3 Mới trong phiên bản 3.4. Mã nguồn: lib/pathlib.py Lib/pathlib.py 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 tin với ngữ nghĩa phù hợp cho các hệ điều hành khác nhau. Các lớp đường dẫn được phân chia giữa các đường dẫn thuần túy, cung cấp các hoạt động tính toán hoàn toàn mà không có I/O và các đường dẫn cụ thể, kế thừa từ các đường dẫn thuần túy nhưng cũng cung cấp các hoạt động I/O.pure paths, which provide purely computational operations without I/O, and concrete paths, which inherit from pure paths but also provide I/O operations. Nếu bạn không bao giờ sử dụng mô -đun này trước đây hoặc chỉ cần chắc chắn rằng lớp nào phù hợp với nhiệm vụ của bạn, >>> list(p.glob('**/*.py')) [PosixPath('test_pathlib.py'), PosixPath('setup.py'), PosixPath('pathlib.py'), PosixPath('docs/conf.py'), PosixPath('build/lib/pathlib.py')]6 rất có thể là những gì bạn cần. Nó khởi tạo một đường dẫn cụ thể cho nền tảng mà mã đang chạy.concrete path for the platform the code is running on. Đường dẫn thuần túy là hữu ích trong một số trường hợp đặc biệt; Ví dụ:
Xem thêm PEP 428: Mô-đun PathLib-Đường dẫn hệ thống tập tin hướng đối tượng.: The pathlib module – object-oriented filesystem paths. Xem thêm PEP 428: Mô-đun PathLib-Đường dẫn hệ thống tập tin hướng đối tượng. Đối với thao tác đường dẫn cấp thấp trên các chuỗi, bạn cũng có thể sử dụng mô-đun >>> list(p.glob('**/*.py')) [PosixPath('test_pathlib.py'), PosixPath('setup.py'), PosixPath('pathlib.py'), PosixPath('docs/conf.py'), PosixPath('build/lib/pathlib.py')] 9.Sử dụng cơ bản >>> from pathlib import Path Nhập lớp chính: >>> p = Path('.') >>> [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 thư mục con: >>> list(p.glob('**/*.py')) [PosixPath('test_pathlib.py'), PosixPath('setup.py'), PosixPath('pathlib.py'), PosixPath('docs/conf.py'), PosixPath('build/lib/pathlib.py')] Liệt kê các tệp nguồn Python trong cây thư mục này: >>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt') Điều hướng bên trong một cây thư mục: 0Thuộc tính đường dẫn truy vấn: 1Mở tệp:Con đường thuần túy Các đối tượng Pure Path cung cấp các hoạt động xử lý đường dẫn mà không thực sự truy cập vào một hệ thống tập tin. Có ba cách để truy cập các lớp này, mà chúng ta cũng gọi là hương vị:pathlib.PurePath(*pathsegments)¶ClassPathLib.PurePath (*PathSegments) ¶ 2Một lớp chung đại diện cho hương vị đường dẫn hệ thống (khởi tạo nó tạo ra >>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt')0 hoặc >>> list(p.glob('**/*.py')) [PosixPath('test_pathlib.py'), PosixPath('setup.py'), PosixPath('pathlib.py'), PosixPath('docs/conf.py'), PosixPath('build/lib/pathlib.py')]8): 3Mỗi phần tử của PathSegments có thể là một chuỗi đại diện cho một phân đoạn đường dẫn, một đối tượng thực hiện giao diện >>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt')2 trả về một chuỗi hoặc một đối tượng đường dẫn khác: 4Khi một số đường dẫn tuyệt đối được đưa ra, con đường cuối cùng được lấy làm mỏ neo (bắt chước hành vi ____ 93 93): 5Tuy nhiên, trong một đường dẫn Windows, việc thay đổi gốc cục bộ không loại bỏ cài đặt ổ đĩa trước đó: 6Các dấu gạch chéo giả và các chấm đơn bị sụp đổ, nhưng các chấm đôi ( >>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt')4) và các dấu gạch chéo đôi hàng đầu ( >>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt')5) thì không, vì điều này sẽ thay đổi ý nghĩa của một đường dẫn vì nhiều lý do (ví dụ: liên kết tượng trưng, đường dẫn UNC): 7. Các đối tượng Pure Path thực hiện giao diện >>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt')2, cho phép chúng được sử dụng ở bất cứ đâu giao diện được chấp nhận. Đã thay đổi trong phiên bản 3.6: Đã thêm hỗ trợ cho giao diện >>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt')2 interface. classPathLib.PurePosixPath (*PathSegments) ¶pathlib.PurePosixPath(*pathsegments)¶ Một lớp con của 01, hương vị đường dẫn này đại diện cho các đường dẫn hệ thống tập tin không phải Windows: 8PathSegments được chỉ định tương tự như 01. ClassPathLib.PureWWindowsPath (*PathSegments) ¶
pathlib.PureWindowsPath(*pathsegments)¶Một lớp con của 01, hương vị đường dẫn này đại diện cho các đường dẫn hệ thống tập tin Windows, bao gồm các đường dẫn UNC: 9PathSegments được chỉ định tương tự như 01.ClassPathLib.PureWWindowsPath (*PathSegments) ¶ Một lớp con của ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
|
Thay đổi trong phiên bản 3.10: Tham số Newline đã được thêm vào. | 37 |
---|---|
38
| Tương ứng với các công cụ trong mô -đun 31
|
40
| 11
|
46
| 89
|
44
| 45
|
46
| 45
|
48
| 49
|
50
| 51
|
52
| 26
|
Dưới đây là một bảng ánh xạ khác nhau 31 các chức năng cho tương ứng tương ứng của chúng ____ 101/________ 86.
| 56
|
38
| 58
|
59
| 60
|
39
| 31 và >>> list(p.glob('**/*.py')) [PosixPath('test_pathlib.py'), PosixPath('setup.py'), PosixPath('pathlib.py'), PosixPath('docs/conf.py'), PosixPath('build/lib/pathlib.py')]9 |
64
| 65
|
66
| 67
|
68
| 69
|
70
| 71
|
20
| 22
|
19
| 21
|
01
| 77
|
78
| 39 1
|
43
| 54, 55
|
84
| 85
|
>>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt')3 | 87
|
88
| 89
|
90
| 91
|
15
| 93
|
94
| 62 và 63
|
from pathlib import Path
Desktop = Path('Desktop')
# print(Desktop)
WindowsPath('Desktop')
# extend the path to include subdir
SubDeskTop = Desktop / "subdir"
# print(SubDeskTop)
WindowsPath('Desktop/subdir')
# passing an absolute path has different behavior
SubDeskTop = Path('Desktop') / '/subdir'
# print(SubDeskTop)
WindowsPath('/subdir')
79 21 ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in ()
1 from pathlib import Path
2 Desktop = Path('Desktop')
----> 3 SubDeskTop = Desktop+"/subdir"
TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str'
90, from pathlib import Path
Desktop = Path('Desktop')
# print(Desktop)
WindowsPath('Desktop')
# extend the path to include subdir
SubDeskTop = Desktop / "subdir"
# print(SubDeskTop)
WindowsPath('Desktop/subdir')
# passing an absolute path has different behavior
SubDeskTop = Path('Desktop') / '/subdir'
# print(SubDeskTop)
WindowsPath('/subdir')
82, from pathlib import Path
Desktop = Path('Desktop')
# print(Desktop)
WindowsPath('Desktop')
# extend the path to include subdir
SubDeskTop = Desktop / "subdir"
# print(SubDeskTop)
WindowsPath('Desktop/subdir')
# passing an absolute path has different behavior
SubDeskTop = Path('Desktop') / '/subdir'
# print(SubDeskTop)
WindowsPath('/subdir')
832from pathlib import Path
Desktop = Path('Desktop')
# print(Desktop)
WindowsPath('Desktop')
# extend the path to include subdir
SubDeskTop = Desktop / "subdir"
# print(SubDeskTop)
WindowsPath('Desktop/subdir')
# passing an absolute path has different behavior
SubDeskTop = Path('Desktop') / '/subdir'
# print(SubDeskTop)
WindowsPath('/subdir')
95 và from pathlib import Path
Desktop = Path('Desktop')
# print(Desktop)
WindowsPath('Desktop')
# extend the path to include subdir
SubDeskTop = Desktop / "subdir"
# print(SubDeskTop)
WindowsPath('Desktop/subdir')
# passing an absolute path has different behavior
SubDeskTop = Path('Desktop') / '/subdir'
# print(SubDeskTop)
WindowsPath('/subdir')
96