Mỗi hệ điều hành có các quy tắc khác nhau để xây dựng đường dẫn tệp. Ví dụ: Linux sử dụng dấu gạch chéo lên cho đường dẫn, trong khi Windows sử dụng dấu gạch chéo ngược Show
Sự khác biệt nhỏ này có thể gây ra sự cố nếu bạn đang làm việc trên một dự án và bạn muốn các nhà phát triển khác đến từ các hệ điều hành khác nhau mở rộng mã của bạn May mắn thay, nếu bạn đang viết mã bằng Python, mô-đun Pathlib sẽ thực hiện công việc nặng nhọc bằng cách cho phép bạn đảm bảo rằng đường dẫn tệp của bạn hoạt động giống nhau trong các hệ điều hành khác nhau. Ngoài ra, nó cung cấp các chức năng và hoạt động để giúp bạn tiết kiệm thời gian trong khi xử lý và thao tác với các đường dẫn điều kiện tiên quyếtPathlib là mặc định với Python >= 3. 4. Tuy nhiên, nếu bạn đang sử dụng phiên bản Python thấp hơn 3. 4, bạn sẽ không có quyền truy cập vào mô-đun này Pathlib hoạt động như thế nào?Để hiểu cách bạn có thể xây dựng một đường dẫn cơ bản bằng Pathlib, hãy tạo một tệp Python mới có tên là 3 và đặt nó vào một thư mục cụ thểMở tệp và nhập nội dung sau ví dụ. pyTrong ví dụ này, chúng tôi nhập mô-đun Pathlib. Sau đó, chúng ta tạo một biến mới có tên là 4 để lưu trữ đường dẫn. Ở đây, chúng tôi sử dụng đối tượng Đường dẫn từ Pathlib với một biến tích hợp trong Python có tên là __file__ để chỉ đường dẫn tệp mà chúng tôi hiện đang viết trong đó 3Nếu chúng tôi in 4, chúng tôi sẽ nhận được đường dẫn đến tệp mà chúng tôi hiện đang ở
Như được hiển thị ở trên, Pathlib tạo đường dẫn đến tệp này bằng cách đặt tập lệnh cụ thể này vào đối tượng Đường dẫn. Pathlib chứa nhiều đối tượng như 7 và 8, chúng ta sẽ tìm hiểu thêm trong các phần sauTrước khi chúng ta chuyển sang phần này, Pathlib chia các đường dẫn hệ thống tệp thành hai lớp khác nhau đại diện cho hai loại đối tượng đường dẫn. Con đường tinh khiết và con đường cụ thể các lớp PurePath()Đường dẫn thuần túy cung cấp các tiện ích để xử lý và thao tác trên đường dẫn tệp của bạn mà không cần thực hiện các thao tác ghi, trong khi đường dẫn cụ thể cho phép bạn thao tác và thực hiện các thao tác ghi trên đường dẫn tệp của mình Nói cách khác, một con đường cụ thể là một lớp con của một con đường thuần túy. Nó kế thừa các thao tác từ lớp cha và bổ sung thêm các thao tác vào/ra thực hiện lời gọi hệ thống Đường dẫn thuần túy trong PythonĐường dẫn thuần túy thao tác đường dẫn tệp trên máy của bạn ngay cả khi nó thuộc hệ điều hành khác Ví dụ: giả sử bạn đang dùng Linux và bạn muốn sử dụng đường dẫn tệp Windows. Ở đây, các đối tượng lớp Đường dẫn thuần túy sẽ giúp bạn có được đường dẫn hoạt động trên máy của mình với một số thao tác cơ bản như tạo đường dẫn con hoặc truy cập các phần riêng lẻ của đường dẫn Nhưng các đường dẫn thuần túy sẽ không thể bắt chước một số hoạt động khác như tạo thư mục hoặc tệp vì bạn không thực sự ở trong hệ điều hành đó Cách sử dụng đường dẫn thuần túyNhư bạn có thể thấy trong sơ đồ trên, các đường dẫn thuần túy bao gồm ba lớp xử lý bất kỳ đường dẫn hệ thống tệp nào trên máy của bạn PurePath() là nút gốc cung cấp các hoạt động xử lý cho mọi đối tượng đường dẫn trong Pathlib Khi bạn khởi tạo 8, nó sẽ tạo hai lớp để xử lý các đường dẫn Windows và đường dẫn không phải Windows. 8 tạo một đối tượng đường dẫn chung "đường dẫn bất khả tri", bất kể bạn đang chạy trên hệ điều hành nào
PurePath() trong ví dụ trên tạo ra một 1 bởi vì chúng tôi cho rằng chúng tôi đang chạy trên máy Linux. Nhưng nếu bạn khởi tạo nó trên Windows, bạn sẽ nhận được một cái gì đó như 2PurePosixPath() là nút con của PurePath() được triển khai cho các đường dẫn hệ thống tệp không phải của Windows
Bạn sẽ không gặp bất kỳ lỗi nào nếu bạn khởi tạo 1 trên Windows vì quá đơn giản, lớp này không thực hiện lời gọi hệ thốngPureWindowsPath() là nút con của PurePath() được triển khai cho các đường dẫn hệ thống tệp Windows
Điều tương tự cũng áp dụng cho 4 vì lớp này không cung cấp lời gọi hệ thống, do đó, việc khởi tạo nó sẽ không gây ra bất kỳ lỗi nào cho các hệ điều hành khácThuộc tính đường dẫn thuần túyMỗi phân lớp trong 8 cung cấp các thuộc tính sauPurePath(). cha mẹ xuất ra cha mẹ của đường dẫn
Trong ví dụ trên, chúng tôi đang sử dụng thuộc tính 6 để lấy đường dẫn của cha logic của 7PurePath(). cha mẹ [] xuất ra tổ tiên của đường dẫn
Bạn phải luôn chỉ định chỉ mục tổ tiên trong ngoặc vuông như đã thấy ở trên. Trong Trăn 3. 10 trở lên, bạn có thể sử dụng các lát cắt và giá trị chỉ số âm PurePath(). name cung cấp tên của thành phần cuối cùng trong đường dẫn của bạn
Trong ví dụ này, thành phần đường dẫn cuối cùng là 8. Vì vậy, thuộc tính 9 xuất ra tên của tệp 8 là tệp chính với hậu tố của nó. pyMặt khác, PurePath(). hậu tố cung cấp phần mở rộng tệp của thành phần cuối cùng trong đường dẫn của bạn
So với thuộc tính 9, thuộc tính 2 xuất phần mở rộng tệp và loại trừ tên tệpPurePath(). gốc chỉ xuất ra tên của thành phần cuối cùng trong đường dẫn của bạn mà không có hậu tố
Như đã thấy ở trên, thuộc tính 3 không bao gồm hậu tố của thành phần cuối cùng 8 và chỉ cung cấp tên của tệpPhương pháp đường dẫn thuần túyMỗi lớp con của 8 cung cấp các phương thức sauPurePath(). is_absolute() kiểm tra xem đường dẫn của bạn có tuyệt đối hay không 0Lưu ý rằng đường dẫn tuyệt đối bao gồm tên gốc và tên ổ đĩa. Trong trường hợp này, 8 không cho phép chúng tôi biết tên ổ đĩaNếu bạn sử dụng 4, bạn có thể biểu diễn một đường dẫn tuyệt đối có chứa tên ổ đĩa như 8PurePath(). is_relative() kiểm tra xem đường dẫn có thuộc đường dẫn đã cho khác hay không 1Trong ví dụ này, đường dẫn đã cho 9 là một phần của hoặc thuộc về đường dẫn 4, trong khi đường dẫn đã cho khác 1 tăng 2 vì nó không có mối quan hệ tương đối với đường dẫn 4PurePath(). joinpath() nối đường dẫn với các đối số đã cho (đường dẫn con) 2Lưu ý rằng không cần thêm dấu gạch chéo vào các đối số đã cho, vì phương thức 4 xử lý việc này cho bạnPurePath(). match() kiểm tra xem đường dẫn có khớp với một mẫu nhất định hay không 3Dựa trên các ví dụ trên, mẫu phải khớp với đường dẫn. Nếu mẫu đã cho là tuyệt đối, thì đường dẫn cũng phải tuyệt đối PurePath(). with_name() thay đổi tên của thành phần cuối cùng bằng hậu tố của nó 4Phương thức 5 không thay đổi vĩnh viễn tên của thành phần cuối cùng. Ngoài ra, nếu đường dẫn đã cho không chứa tên, sẽ xảy ra lỗi như đã đề cập trongPurePath(). with_stem() chỉ thay đổi tên của thành phần cuối cùng của đường dẫn 5Điều này tương tự như phương pháp 5. 7 tạm thời thay đổi tên của thành phần cuối cùng. Ngoài ra, nếu đường dẫn đã cho không chứa tên, sẽ xảy ra lỗiPurePath(). with_suffix() tạm thời thay đổi hậu tố hoặc phần mở rộng của thành phần cuối cùng trong đường dẫn của bạn. 6Nếu tên của đường dẫn đã cho không chứa hậu tố, phương thức 8 sẽ thêm hậu tố cho bạn 7Tuy nhiên, nếu chúng tôi không bao gồm hậu tố và chúng tôi để trống đối số 9, thì hậu tố hiện tại sẽ bị xóa 8Một số phương thức như 7 và 1 gần đây đã được thêm vào Python 3. 9 trở lên. Vì vậy, nếu bạn gọi các phương thức này bằng Python 3. 8 hoặc thấp hơn, một lỗi thuộc tính được nâng lênĐường dẫn bê tông trong PythonĐường dẫn bê tông cho phép bạn xử lý, thao tác và thực hiện các thao tác ghi trên các đường dẫn hệ thống tệp khác nhau Nói cách khác, loại đối tượng đường dẫn này giúp bạn tạo ví dụ như một tệp mới, một thư mục mới và thực hiện các thao tác nhập/xuất khác khi không ở trong hệ điều hành đó Cách sử dụng đường bê tôngĐường dẫn cụ thể xử lý bất kỳ đường dẫn hệ thống tệp nào và thực hiện cuộc gọi hệ thống trên máy của bạn. Các đối tượng đường dẫn đó là các đường dẫn con của các đường dẫn thuần túy và bao gồm ba lớp con giống như các đối tượng thuần túy Path() là nút con của 8, nó cung cấp các thao tác xử lý với khả năng thực hiện các thao tác ghi trên đường dẫn của bạnKhi bạn khởi tạo 3, nó sẽ tạo hai lớp để xử lý các đường dẫn Windows và đường dẫn không phải Windows. Giống như 8, 3 cũng tạo một đối tượng đường dẫn chung "đường dẫn bất khả tri", bất kể bạn đang chạy trên hệ điều hành nào 9 3 trong ví dụ trên tạo ra một 7 vì chúng tôi cho rằng chúng tôi đang chạy trên máy Linux. Nhưng nếu bạn khởi tạo nó trên Windows, bạn sẽ nhận được một cái gì đó như 8PosixPath() là nút con của 3 và 1, được triển khai để xử lý và thao tác các đường dẫn hệ thống tệp không phải của Windows 0Bạn sẽ gặp lỗi nếu khởi tạo 7 trên máy Windows vì bạn không thể thực hiện cuộc gọi hệ thống khi đang chạy trên một hệ điều hành khácWindowsPath() là nút con của 3 và 4 được triển khai cho các đường dẫn hệ thống tệp Windows 1Điều tương tự cũng áp dụng cho 4 vì bạn đang chạy trên một hệ điều hành khác – vì vậy việc khởi tạo nó sẽ gây ra lỗiThuộc tính của đường dẫn bê tôngVì đường dẫn cụ thể là lớp con của đường dẫn thuần túy, bạn có thể làm mọi thứ với đường dẫn cụ thể bằng cách sử dụng thuộc tính 8. Điều này có nghĩa là chúng ta có thể sử dụng, ví dụ, thuộc tính 6 để thêm hậu tố vào một đường dẫn cụ thể 2Hoặc, bạn có thể kiểm tra xem đường dẫn đã cho có liên quan đến đường dẫn ban đầu không 3Luôn nhớ rằng các đường dẫn cụ thể kế thừa các thao tác xử lý từ các đường dẫn thuần túy và thêm các thao tác ghi để thực hiện lời gọi hệ thống và cấu hình đầu vào/đầu ra Phương pháp đường bê tôngMỗi lớp con của 3 cung cấp các phương thức sau để xử lý các đường dẫn và thực hiện các cuộc gọi hệ thốngCon đường(). iterdir() trả về nội dung của một thư mục. Giả sử chúng ta có thư mục sau chứa các tệp sau 4thư mục dữ liệuĐể trả về nội dung của thư mục 1, bạn có thể sử dụng phương thức 9 tại đây 5Phương thức 9 tạo một trình vòng lặp liệt kê các tệp một cách ngẫu nhiênCon đường(). tồn tại() kiểm tra xem tệp/thư mục có tồn tại trong đường dẫn hiện tại không. Hãy sử dụng thư mục của ví dụ trước (thư mục hiện tại của chúng ta là 1) 6Các. phương thức tồn tại () trả về 2 vì tệp đã cho tồn tại trong thư mục 3. Phương thức trả về 2 nếu tệp không tồn tại 7Điều tương tự cũng áp dụng cho các thư mục, phương thức trả về 2 nếu thư mục đã cho tồn tại và trả về 2 nếu khôngCon đường(). mkdir() tạo một thư mục mới tại một đường dẫn nhất định 8Theo tài liệu chính thức, phương thức 7 có ba đối số. Hiện tại chúng tôi sẽ chỉ tập trung vào 8 và 9Cả hai đối số được đặt thành 2 làm mặc định. 01 gây ra lỗi FileNotFound trong trường hợp thiếu thư mục gốc, trong khi 9 gây ra lỗi FileExists nếu thư mục đã cho đã tồn tạiTrong ví dụ trên, bạn có thể đặt các đối số thành 2 để bỏ qua các lỗi được đề cập và cập nhật thư mụcChúng tôi cũng có thể tạo một tệp mới tại một đường dẫn nhất định bằng cách sử dụng phương thức 04 9Logic tương tự áp dụng cho phương pháp 05. Ở đây, bạn có thể đặt 9 thành 2 để bỏ qua lỗi FileExists và cập nhật tệpĐường dẫn(). rename() đổi tên tệp/thư mục theo một đường dẫn nhất định. Hãy lấy một ví dụ bằng cách sử dụng thư mục của chúng tôi 1 0Nếu bạn chỉ định một tệp không tồn tại cho phương thức, nó sẽ gây ra lỗi FileNotFound. Điều tương tự cũng áp dụng cho các thư mục Con đường(). read_text() trả về nội dung của tệp ở định dạng chuỗi 1Ngoài ra, bạn có thể sử dụng phương thức 09 để ghi nội dung vào tệp 2Lưu ý rằng phương thức 10 đã được thêm vào Python 3. 5 và đã được cập nhật gần đây trong Python 3. 10 để có một số tham số bổ sungLưu ý quan trọngBạn có thể tự hỏi tại sao bạn cần sử dụng đường dẫn hệ thống tệp Windows – bởi vì mọi gói phải tương thích với các hệ điều hành khác, không chỉ Windows Bạn đúng nếu mục tiêu là tạo ra một đường dẫn bất khả tri về hệ điều hành. Tuy nhiên, đôi khi chúng tôi không thể thực hiện việc này do một số cài đặt dành riêng cho hệ thống Windows hoặc Posix. Đó là lý do tại sao những đối tượng đó có sẵn để giúp các nhà phát triển giải quyết các trường hợp sử dụng đó Một số gói nhắm mục tiêu các sự cố chỉ xuất hiện trong hệ sinh thái Windows và Python cung cấp các trường hợp sử dụng đó trong thư viện này Tiếp theo là gì?Hy vọng, hướng dẫn này giúp bạn tìm hiểu cách thức và lý do sử dụng Pathlib cũng như cách nó hữu ích để xử lý và thao tác các đường dẫn hệ thống tệp Sẽ thật tuyệt khi chơi với những gì bạn đã học và biến mọi thứ thành một dự án thực sự. Nếu bạn có bất kỳ câu hỏi nào, vui lòng kết nối và liên hệ với tôi bất cứ lúc nào trên LinkedIn Ngoài ra, bạn có thể xem kênh của tôi trên YouTube nơi tôi chia sẻ video về những gì tôi đang học và xây dựng bằng mã Hẹn gặp lại bạn trong hướng dẫn tiếp theo và tiếp tục tiến về phía trước Người giới thiệuCó rất nhiều điều để biết. Trong bài đăng trên blog này, tôi đã trình bày những điều cơ bản bạn cần để sử dụng Pathlib trong dự án của mình Tài liệu chính thức nêu bật nhiều phương thức và thuộc tính hơn mà bạn có thể áp dụng cho đường dẫn hệ thống tệp của mình
QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Mã hóa để tiếp cận không gian Nếu bài viết này hữu ích, hãy tweet nó Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu Làm cách nào để chuyển đổi chuỗi đường dẫn Windows thành đường dẫn trong Python?Sử dụng hàm tạo của lớp Đường dẫn để chuyển Chuỗi thành Đường dẫn trong Python . Bạn cần nhập lớp Đường dẫn từ pathlib. Chúng tôi đã sử dụng hàm tạo Path() để chuyển đổi Chuỗi thành Đường dẫn. Hàm tạo này chấp nhận một chuỗi chứa đường dẫn bắt buộc và chuyển đổi chuỗi thành đường dẫn POSIX hoặc đường dẫn Windows dựa trên hệ thống của bạn.
Làm cách nào để sử dụng đường dẫn tệp Windows trong Python?Để sử dụng nó, bạn chỉ cần chuyển đường dẫn hoặc tên tệp vào đối tượng Path() mới bằng cách sử dụng dấu gạch chéo lên phía trước và nó xử lý phần còn lại. Lưu ý hai điều ở đây. Bạn nên sử dụng dấu gạch chéo về phía trước với các hàm pathlib. Đối tượng Path() sẽ chuyển đổi các dấu gạch chéo về phía trước thành loại dấu gạch chéo chính xác cho hệ điều hành hiện tại.
Đường dẫn () trong Python là gì?PATH là biến môi trường chứa danh sách đường dẫn đến thư mục . Mỗi đường dẫn trong PATH được phân tách bằng dấu hai chấm hoặc dấu chấm phẩy—dấu hai chấm cho các hệ thống dựa trên UNIX và dấu chấm phẩy cho Windows. Nó giống như một biến Python với một chuỗi dài làm giá trị của nó.
Tên Windowspath là gì?Nói chung, tên đường dẫn Windows bao gồm một trình xác định ổ đĩa tùy chọn và đường dẫn dành riêng cho ổ đĩa . Đường dẫn Windows có thể là tuyệt đối nhưng vẫn liên quan đến ổ đĩa hiện tại; . |