hệ điều hành. mô-đun đường dẫn cũng có thể được sử dụng để xử lý các hoạt động tên đường dẫn. Sự khác biệt là mô-đun đường dẫn tạo các chuỗi đại diện cho đường dẫn tệp trong khi pathlib tạo đối tượng đường dẫn
Một lợi thế quan trọng của việc sử dụng các đối tượng đường dẫn thay vì một chuỗi là chúng ta có thể gọi các phương thức trên một đối tượng đường dẫn. Mô-đun Pathlib cung cấp nhiều phương thức hữu ích như chúng ta sẽ thấy trong các ví dụ
Trong bài viết này, chúng ta sẽ xem qua 10 ví dụ để nắm vững cách sử dụng mô-đun pathlib
1. Tạo một đối tượng đường dẫn
Hãy bắt đầu với việc nhập pathlib và tạo một đối tượng đường dẫn
import pathlib
pathlib.Path[]PosixPath['.'] #relative path to the current folder
Nếu chúng ta gọi phương thức Đường dẫn mà không có đối số, nó sẽ tạo một đường dẫn tương đối đến thư mục mà chúng ta hiện đang làm việc. Các đường dẫn có thể được mô tả là tương đối hoặc tuyệt đối
- Đường dẫn tương đối. Đường dẫn liên quan đến thư mục chúng tôi hiện đang làm việc
- đường dẫn tuyệt đối. Đường dẫn liên quan đến hệ điều hành
Để làm cho sự khác biệt rõ ràng hơn, tôi cũng sẽ tạo đường dẫn tuyệt đối đến thư mục mà tôi hiện đang làm việc.
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path
2. Tạo đường dẫn bằng cách chuyển thư mục và tên tệp
Chúng ta có thể gọi phương thức đường dẫn bằng cách chuyển tên thư mục và tệp dưới dạng các chuỗi riêng biệt. Tôi hiện đang chạy các ví dụ trên sổ ghi chép jupyter được lưu trong thư mục có tên là “dữ liệu”. Có một thư mục “tên” trong thư mục “dữ liệu” và bên trong “tên”, tôi có một tệp có tên là “file1. json”
Tôi sẽ tạo một đối tượng đường dẫn đại diện cho đường dẫn tương đối tới tệp này
p = pathlib.Path["names", "file1.json"]p
PosixPath['names/file1.json']
3. Chuyển đổi đường dẫn tương đối thành đường dẫn tuyệt đối
Trong một số trường hợp, chúng ta có thể cần sử dụng đường dẫn tuyệt đối thay vì đường dẫn tương đối. Phương thức giải quyết được sử dụng để chuyển đổi một đường dẫn tương đối thành một đường dẫn tuyệt đối
Chúng ta có thể gọi nó trên đối tượng đường dẫn mà chúng ta đã tạo trước đó
p.resolve[]
PosixPath['/home/soner/Desktop/data/names/file1.json']
Đường dẫn trả về là đường dẫn tuyệt đối của file1. Một cách khác để chuyển đổi đường dẫn tương đối thành đường dẫn tuyệt đối là thông qua phương thức tuyệt đối
p.absolute[]
PosixPath['/home/soner/Desktop/data/names/file1.json']
4. Đọc văn bản bằng đường dẫn
Mô-đun pathlib có một phương thức có thể được sử dụng để đọc văn bản bên trong tệp
p.read_text[]
'{\n "John": 1,\n "Jane": 2\n}'
Chúng ta có thể xem nội dung của file1. json nhưng định dạng không đẹp và sạch sẽ. Mô-đun json có thể được sử dụng cùng với pathlib để cải thiện mọi thứ
import jsonjson.loads[p.read_text[]]
{'John': 1, 'Jane': 2}
5. Đường dẫn tương đối đến đường dẫn khác
Chúng ta có thể tạo một đường dẫn có liên quan đến một đường dẫn khác
p1 = pathlib.Path["names", "file1.json"]p2 = pathlib.Path["names"]p_relative = p1.relative_to[p2]p_relative
PosixPath['file1.json']
p_relative là đường dẫn tương đối của p2 [thư mục tên] đến p1 [tệp1 bên trong thư mục tên]. Nó cũng có thể được coi là một đường dẫn tuyệt đối dựa trên một đường dẫn khác [không phải hệ điều hành]
6. So sánh hai con đường
Chúng ta có thể sử dụng phương thức samefile để so sánh nếu hai đường dẫn đại diện cho cùng một tệp. Các đường dẫn có thể là tương đối hoặc tuyệt đối
Hãy xem xét hai con đường sau đây
p2 là phiên bản đường dẫn tuyệt đối của p1. Hãy so sánh chúng bằng phương thức samefile
p1.samefile[p2]
True
7. Tệp hoặc thư mục
Chúng tôi có thể kiểm tra xem một đường dẫn đại diện cho một tệp hoặc một thư mục. Các phương thức, không có gì đáng ngạc nhiên, is_file và is_dir
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path0
Đường dẫn p1 đại diện cho tệp json nên is_file trả về True
8. Di chuyển tệp bằng pathlib
Mô-đun pathlib cũng có thể được sử dụng để di chuyển tệp
tôi có tập tin1. json lưu trữ trong thư mục dữ liệu
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path1
Tôi muốn chuyển file1 vào thư mục id và đổi tên thành file1-a. Phương pháp đổi tên được sử dụng như sau
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path2
File1 không tồn tại trong thư mục dữ liệu nữa. Chúng ta có thể kiểm tra nó bằng phương thức tồn tại
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path3
9. Tạo một đường dẫn mới và viết văn bản
Mô-đun pathlib cung cấp một cách để tạo một tệp mới và viết văn bản vào đó
Hãy tạo một văn bản để ghi vào đối tượng đường dẫn
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path4
Bây giờ chúng ta có thể tạo một đường dẫn và gọi phương thức write_text trên đó
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path5
Phương thức kết xuất của mô-đun json chuyển đổi nội dung của tệp json thành văn bản. Chúng tôi chuyển văn bản này tới phương thức write_text và nó được viết trong tệp mới. json
Chúng tôi có thể xác nhận nó bằng cách đọc nội dung của tệp mới. json
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path6
10. Cha mẹ và cha mẹ
Cấu trúc thư mục được phân cấp nên thư mục mẹ cao hơn một cấp. Chúng ta có thể gọi phương thức cha mẹ hoặc cha mẹ trên đường dẫn
Phương thức cha sẽ trả về đường dẫn đại diện cho một cấp trên
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path7
Cha mẹ trả về một chuỗi tất cả các thư mục mẹ
PosixPath['.'] #relative pathPosixPath['/home/soner/Desktop/data'] #absolute path8
Sự kết luận
Mô-đun pathlib cung cấp các cách thuận tiện và mạnh mẽ để xử lý đường dẫn tệp. Pathlib tạo các đường dẫn dưới dạng các đối tượng để nó được ưu tiên hơn os. mô-đun đường dẫn. hệ điều hành. đường dẫn tạo đường dẫn dưới dạng chuỗi
Chúng tôi đã đề cập đến các phương pháp được sử dụng phổ biến nhất của pathlib. Tuy nhiên, có nhiều hơn thế. Nếu bạn muốn đọc thêm, bạn luôn có thể truy cập tài liệu chính thức