Nhận hình ảnh đường dẫn python
Trong ví dụ sau, đường dẫn tệp trỏ đến một tệp trong thư mục hình ảnh nằm ở thư mục gốc của trang web hiện tại Show Trong ví dụ sau, đường dẫn tệp trỏ đến một tệp trong thư mục hình ảnh nằm trong thư mục hiện tại Trong ví dụ sau, đường dẫn tệp trỏ đến một tệp trong thư mục hình ảnh nằm trong thư mục tăng một cấp so với thư mục hiện tại Thực hành tốt nhấtCách tốt nhất là sử dụng đường dẫn tệp tương đối (nếu có thể) Khi sử dụng đường dẫn tệp tương đối, các trang web của bạn sẽ không bị ràng buộc với URL cơ sở hiện tại của bạn. Tất cả các liên kết sẽ hoạt động trên máy tính của riêng bạn (máy chủ cục bộ) cũng như trên miền công cộng hiện tại và miền công cộng trong tương lai của bạn Mục tiêu của bài viết này là tính toán đường dẫn đến một tệp trong một thư mục trong dự án của bạn. Lý do chúng tôi tính toán đường dẫn này là bạn tham khảo đúng vị trí cho dù mã được cài đặt ở đâu. Đây là trường hợp khi bạn chia sẻ mã của mình với đồng nghiệp hoặc triển khai mã của bạn trên máy chủ web e. g Bạn không thể mã hóa cứng vị trí (dự kiến) của tệp vì import json 1 không tồn tại trên máy của bạn hoặc trên máy chủ mà chúng tôi đang triển khai. Lý tưởng nhất là chúng tôi muốn chỉ định đường dẫn liên quan đến thư mục gốc của dự án của chúng tôiTrong bài viết này, chúng ta sẽ kiểm tra một thủ thuật Python đơn giản cho phép chúng ta tham khảo các tệp liên quan đến thư mục dự án của chúng ta một cách rất dễ dàng. Hãy viết mã TL/DR; Trường hợp sử dụng Hai ví dụ nhanh về nơi thủ thuật này có ích
Trong bài viết này, chúng tôi sẽ thiết lập cấu trúc dự án của chúng tôi như thế này relative_path Tất cả mã của chúng tôi được chứa trong một thư mục có tên là import json 4. Đây là gốc của các dự án của chúng tôi, có nghĩa là nó chứa tất cả mã của chúng tôi. Như bạn có thể thấy, chúng tôi có hai thư mục. thư mục dữ liệu chứa tệp json mục tiêu của chúng tôi và thư mục quy trình của chúng tôi chứa import json 5; Đang tải dữ liệu Trong phần này, chúng ta sẽ bắt đầu với cách tải mydata rõ ràng nhất. json và xem những sai sót của nó. Sau đó, chúng tôi sẽ từ từ cải thiện, kết thúc bằng một phương thức tải tương đối. Sau đó, chúng tôi sẽ tổng hợp kiến thức này thành một thủ thuật đơn giản sẽ giúp ích cho chúng tôi trong tất cả các dự án trong tương lai 1. đường dẫn tuyệt đốiPhương pháp đơn giản nhất là chỉ sử dụng một đường dẫn tuyệt đối trong mã của chúng tôi import json Mặc dù điều này hoạt động hoàn hảo trên máy tính xách tay của tôi, nhưng nếu chúng tôi triển khai mã này trên máy chủ, điều này có thể không thành công nếu chúng tôi đặt mã vào một thư mục khác. Linux thậm chí không có ổ C nên chắc chắn không có import json 0 trên máy chủ đó2. Sử dụng __file__Chúng tôi có thể tính toán đường dẫn tuyệt đối đến tệp chúng tôi đang chạy trong thời gian chạy print(__file__)# Results in Mã ở trên sẽ in ra vị trí của tệp chúng tôi hiện đang thực thi import json 1. Chúng ta có thể làm việc từ đó. 3. Tính dirname của __file__Lấy đường dẫn thư mục của tệp chúng tôi đang thực hiện nhích chúng tôi gần hơn một chút import os 4. Điều hướng thư mụcChúng tôi phải đi lên một thư mục để đi đến đường dẫn gốc của mình, sau đó đi đến thư mục import json 2 để lấy vị trí của dữ liệu json của chúng tôiỞ đây chúng tôi lấy đường dẫn thư mục của mình và sử dụng os. đường dẫn. tham gia để điều hướng
Ngoài ra, chúng tôi gọi os. đường dẫn. realpath để 'tính toán' các lệnh import json 3 để nó dẫn đến đường dẫn tuyệt đối của chúng taRắc rối điều hướngTốt đẹp. Chúng tôi đã tính toán đường dẫn chính xác trong thời gian chạy. Tuy nhiên, vấn đề là chúng ta phải điều hướng khá nhiều. Hãy tưởng tượng chúng tôi đang làm việc trong một tệp tại vị trí này. import json 4. Nếu chúng tôi muốn tải `mydata. json` từ tệp này, chúng ta phải chạyTừ tệp chúng tôi phải di chuyển lên ba lần. Điều này có một chút phức tạp. Chúng tôi cũng không thể di chuyển tệp vì nó tính toán đường dẫn đến dữ liệu của chúng tôi có liên quan đến tệp chúng tôi đang thực thi. Hãy làm sạch nó một chút trong phần tiếp theo Một con đường rất rõ ràng và thẳng về phía trước (hình ảnh của Pop & Zebra trên Bapt)The TrickMẹo nhỏ là xác định một biến tính toán đường dẫn tuyệt đối đến thư mục gốc của chúng ta trong một tệp và sau đó nhập biến này từ bất kỳ đâu trong dự án. Nó hoạt động như thế này Trong thư mục gốc của dự án, hãy tạo một thư mục có tên là import json 5 chứa một tệp có tên là import json 6. Chúng tôi sẽ đặt đoạn mã sau vào bên trongĐoạn mã ngắn này sẽ luôn tính toán đường dẫn chính xác đến thư mục gốc của dự án của chúng ta. Chúng tôi biết vị trí của tệp trong dự án và chỉ cần đi lên một. Sau đó, trong các tệp khác, chúng ta có thể nhập biến ROOT_DIR Thay vì mã dài, phức tạp từ phần trước, chúng ta có thể làm như sau Cách tiếp cận này không chỉ dễ đọc hơn mà còn không ràng buộc vị trí tệp xử lý của chúng tôi với vị trí tệp dữ liệu của chúng tôi. chúng tôi tính toán vị trí của tệp dữ liệu của chúng tôi so với thư mục gốc của dự án. Bạn có thể thêm thư mục cấu hình với định nghĩa. py vào bất kỳ dự án nào để bạn có một giải pháp tổng quát, rất hay để xử lý các đường dẫn tương đối Một con đường đẹp như vậy (hình ảnh của Lili Popper trên Bapt)Kết luậnSử dụng một tệp duy nhất chứa một biến duy nhất, chúng tôi đơn giản hóa việc tính toán một loạt các đường dẫn. Ngoài ra, thủ thuật này rất đơn giản và có thể dễ dàng sao chép vào mọi dự án. Sử dụng tệp định nghĩa, chúng ta có thể dễ dàng tải các biến môi trường vào chương trình python của mình. Thêm về những điều này trong bài viết này Nếu bạn có góp ý/làm rõ xin vui lòng bình luận để tôi có thể cải thiện bài viết này. Trong thời gian chờ đợi, hãy xem các bài viết khác của tôi về tất cả các loại chủ đề liên quan đến lập trình như thế này |