Os.path.abspath(__file__) python
Các hệ điều hành như Windows, Linux hoặc macOS có các cấu trúc đường dẫn khác nhau trong đó các tệp hệ điều hành được lưu trữ Show
Do đó, khi bạn chạy tập lệnh Python trên các máy này và muốn tìm nạp tệp hoặc thư mục, bạn muốn tự động tìm đường dẫn tuyệt đối của tệp so với thư mục hiện tại thay vì mã hóa cứng nó cho mọi hệ thống Đường dẫn tuyệt đối còn được gọi là đường dẫn đầy đủ và bắt đầu bằng 6 trong Linux và macOS và 7 trên WindowsĐể tìm đường dẫn tuyệt đối trong Python, bạn nhập mô-đun 8, sau đó bạn có thể tìm thư mục làm việc hiện tại bằng cách sử dụng 9 trong tập lệnh Python của mìnhMục lục 1Đường dẫn tuyệt đối trong Python là gì?Đường dẫn tuyệt đối trong Python là đường dẫn đầy đủ bắt đầu từ thư mục gốc của hệ thống tệp điều hành cho đến thư mục làm việc Vì vậy, giả sử bạn chạy mã Python của mình trong 0. Đây là điểm vào nơi bạn chạy mã cấp cao nhất của mô-đun python của mìnhSau đó, đây là đường dẫn tuyệt đối của thư mục làm việc của bạn 1Cách tìm đường dẫn tuyệt đối trong PythonNhư đã đề cập ở đầu bài viết này, bạn có thể chạy ứng dụng Python của mình trên các hệ điều hành khác nhau, do đó bạn muốn tự động tìm đường dẫn đầy đủ của tệp bạn muốn nhập trong mã của mình thay vì mã hóa cứng nó Vì vậy, với một đường dẫn chẳng hạn như 2, làm thế nào để bạn tìm thấy đường dẫn tuyệt đối của tệp so với thư mục làm việc hiện tại ( 1) trong Python?Để có được đường dẫn tuyệt đối trong Python, bạn viết đoạn mã sau
Để giải thích mã Python. trước tiên, bạn phải nhập mô-đun 8 bằng Python để có thể chạy các chức năng của hệ điều hành trong mã của mìnhSau đó, bạn sử dụng thư viện 1 để trả về phiên bản chuẩn hóa tuyệt đối của đường dẫn tên đường dẫnĐiều này sẽ dẫn đến đầu ra sau
Phần kết luậnNhư bạn có thể thấy, đường dẫn tuyệt đối giúp bạn tìm đường dẫn đầy đủ của tệp hoặc thư mục so với thư mục làm việc hiện tại. Điều này rất hữu ích vì bạn có thể linh hoạt tìm tệp hoặc thư mục và trả về đường dẫn chính xác trên các hệ điều hành khác nhau Để có đường dẫn tuyệt đối trong Python, bạn sử dụng thư viện 2. Chèn tên tệp của bạn và nó sẽ trả về đường dẫn đầy đủ tương đối từ thư mục làm việc bao gồm tệp Khi một gói được tải từ một tệp trong Python, __file__ được đặt vào thư mục của nó. Sau đó, bạn có thể sử dụng phương pháp đó với các phương pháp khác để tìm thư mục chứa tệp Lấy ví dụ của bạn một lần
Bạn có thể thấy nhiều giá trị được trả về từ những giá trị này tại đây
Trong Python, bạn có thể lấy đường dẫn (vị trí) của tệp hiện tại, tôi. e. , tập lệnh hiện đang chạy (______49) với 0. 0 hữu ích để đọc các tệp khác dựa trên vị trí của tệp hiện tạiTrong Trăn 3. 8 trở về trước, 0 trả về đường dẫn đã chỉ định khi thực hiện lệnh 3 (hoặc 4). Nếu bạn chỉ định một đường dẫn tương đối, một đường dẫn tương đối sẽ được trả về. Nếu bạn chỉ định một đường dẫn tuyệt đối, một đường dẫn tuyệt đối sẽ được trả vềTrong Trăn 3. 9 trở lên, 0 luôn trả về một đường dẫn tuyệt đối, bất kể đường dẫn được chỉ định bằng lệnh 3 là tương đối hay tuyệt đốiBài viết này mô tả các nội dung sau
Xem bài viết sau về cách lấy và thay đổi thư mục làm việc hiện tại
Lưu ý rằng không thể sử dụng 0 trong Jupyter Notebook ( 50). Bất kể thư mục nơi Jupyter Notebook được bắt đầu, thư mục hiện tại là nơi chứa 50. Có thể thay đổi thư mục hiện tại bằng cách sử dụng 52 trong mãLiên kết được tài trợ python3 data/src/file_path.py # getcwd: /Users/mbp/Documents/my-project/python-snippets/notebook # __file__: data/src/file_path.py 7 và python3 data/src/file_path.py # getcwd: /Users/mbp/Documents/my-project/python-snippets/notebook # __file__: data/src/file_path.py 0Giả sử bạn làm việc trong thư mục sau. Trên Windows, bạn có thể kiểm tra thư mục hiện tại bằng lệnh 55 thay vì 56 2nguồn. Tạo tệp tập lệnh Python ( 57) với mã sau trong thư mục bên dưới ( 58)
nguồn. Chạy nó bằng lệnh 3 (hoặc 4)
nguồn. Bạn có thể lấy đường dẫn tuyệt đối của thư mục làm việc hiện tại với 7 và đường dẫn được chỉ định bằng lệnh 4 với 0Trong Trăn 3. 8 trở về trước, đường dẫn được chỉ định bởi lệnh 3 (hoặc 4) được lưu trữ trong 0. Trong ví dụ trên, một đường dẫn tương đối được chỉ định, do đó, một đường dẫn tương đối được trả về, nhưng nếu một đường dẫn tuyệt đối được chỉ định, một đường dẫn tuyệt đối sẽ được trả về 5nguồn. Trong Trăn 3. 9 trở lên, 0 luôn lưu trữ một đường dẫn tuyệt đối, bất kể đường dẫn được chỉ định bằng lệnh 3 là tương đối hay tuyệt đốiTrong các ví dụ sau, hãy thêm mã vào cùng một tệp tập lệnh ( 57) và thực thi từ cùng thư mục với ví dụ trên trong Python3. 7Lưu ý rằng nếu 0 là một đường dẫn tuyệt đối (khi Python 3. 9 trở lên hoặc khi chỉ định đường dẫn tuyệt đối trong Python 3. 8 trở xuống), bạn có thể sử dụng cùng mã như được mô tả bên dưới để đọc các tệp khác dựa trên vị trí của tệp tập lệnh hiện tại. Kết quả thực thi bằng cách chỉ định đường dẫn tuyệt đối trong Python3. 7 được hiển thị ở cuốiLấy tên tệp và thư mục của tệp tập lệnh hiện tạiSử dụng 01 và 02 để lấy tên tệp và thư mục của tệp tập lệnh hiện tại 2nguồn. Kết quả là như sau 0nguồn. Nếu bạn chỉ muốn lấy tên thư mục ngay phía trên tệp, hãy sử dụng 03Xem bài viết sau để biết chi tiết về 01, 02, v.v.
Nhận đường dẫn tuyệt đối của tệp tập lệnh hiện tạiNếu bạn nhận được đường dẫn tương đối với 0, bạn có thể chuyển đổi nó thành đường dẫn tuyệt đối với 07 9nguồn. Kết quả là như sau 0nguồn. Nếu bạn chỉ định một đường dẫn tuyệt đối trong 07, nó sẽ được trả về nguyên trạng, vì vậy nếu 0 là một đường dẫn tuyệt đối, sẽ không có lỗi nào xuất hiện ngay cả khi bạn đặt 90Liên kết được tài trợ Đọc các tệp khác dựa trên vị trí của tệp tập lệnh hiện tạiNếu bạn muốn đọc các tệp khác dựa trên vị trí (đường dẫn) của tệp tập lệnh hiện tại, hãy nối đường dẫn thư mục của tệp hiện tại và đường dẫn tương đối (từ tệp hiện tại) của tệp bạn muốn đọc với 91Lưu ý rằng các tệp trong cùng thư mục với tệp script có thể được đọc bằng cách chỉ định tên tệp 5nguồn. Kết quả là như sau 6nguồn. Thư mục trên được đại diện bởi 92. Không có vấn đề gì, nhưng nếu bạn sử dụng ________ 493, bạn có thể chuẩn hóa đường dẫn và xóa thêm ________ 492, v.v. 0nguồn. Kết quả là như sau 1nguồn. Thay đổi thư mục hiện tại thành thư mục của tệp script hiện tạiSử dụng 52 để thay đổi thư mục làm việc hiện tại thành thư mục của tệp tập lệnh hiện tại
Bạn có thể xác nhận rằng nó đã được thay đổi bằng 7 2nguồn. Kết quả là như sau 3nguồn. Nếu thư mục làm việc hiện tại giống với thư mục của tệp hiện tại, bạn có thể chỉ định đường dẫn tương đối từ tệp hiện tại để đọc các tệp khác 4nguồn. Kết quả là như sau 5nguồn. Đọc cùng một tệp bất kể thư mục làm việc hiện tạiBằng cách sử dụng 0 để lấy đường dẫn của tệp tập lệnh hiện tại, bạn có thể đọc cùng một tệp bất kể thư mục làm việc hiện tại là gìNhư được hiển thị cho đến nay, có hai cách
Việc thay đổi thư mục hiện tại sẽ dễ dàng hơn, nhưng tất nhiên, nếu bạn đọc hoặc ghi tệp sau đó, bạn cần xem xét rằng thư mục hiện tại đã bị thay đổi Kết quả của các ví dụ cho đến nay là như sau 6nguồn. Kết quả cho việc chỉ định đường dẫn tuyệt đối bằng lệnh 4 như sau. Bạn có thể đọc cùng một tập tin 7nguồn. Thay đổi thư mục hiện tại trong thiết bị đầu cuối và thực thi cùng một tệp tập lệnh. Bạn có thể thấy rằng cùng một tệp được đọc từ các vị trí khác nhau Đường dẫn (__ tệp __) trong Python là gì?Trong Python a. tệp py là một mô-đun. Vì vậy, nhập amodule sẽ có thuộc tính __file__ có nghĩa là những thứ khác nhau trong các trường hợp khác nhau. Lấy từ các tài liệu. __file__ là tên đường dẫn của tệp mà mô-đun được tải từ đó, nếu nó được tải từ một tệp .
Làm cách nào để sử dụng abspath trong Python?Đường dẫn tuyệt đối còn được gọi là đường dẫn đầy đủ và bắt đầu bằng / trong Linux và macOS và C. / trên Windows. Để tìm đường dẫn tuyệt đối trong Python, bạn nhập mô-đun os, sau đó bạn có thể tìm thư mục làm việc hiện tại bằng cách sử dụng os. đường dẫn. abspath("insert-file-name-here") trong tập lệnh Python của bạn.
Việc sử dụng đường dẫn os dirname (__ tệp __) là gì?đường dẫn. phương thức dirname() trong Python được sử dụng để lấy tên thư mục từ đường dẫn đã chỉ định .
Đường dẫn os dirname (__ tệp __) trả về là gì?đường dẫn. dirname(__file__) trả về trống . Lưu câu hỏi này. |