Vị trí của thư mục gốc có thể được xác định bằng chuỗi lệnh python đơn giản sau
>>> import sys >>> sys.exec_prefix
các cửa sổ
Nếu nó được cài đặt cho tất cả người dùng, thì thư mục gốc nằm ngay bên dưới
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
6 [. ], ví dụ import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
7 Khi bạn đang làm việc trên một dự án với nhiều người, có thể bạn cần nhập tệp hoặc dữ liệu từ một vị trí cụ thể trong dự án mà không cần ghi lại đường dẫn đầy đủ
Do đó, bạn muốn tìm ra đường dẫn liên quan đến thư mục làm việc hiện tại nơi bạn chạy mã Python của mình
Đường dẫn tương đối bắt đầu bằng
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
8, import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
9 hoặc ~/home/projects/example-project/
├── app.py
├── cdk.context.json
├── cdk.json
├── mypy.ini
├── README.md
├── requirements.txt
├── src
│ ├── __init__.py
│ ├── bin
│ │ ├── __init__.py
│ │ ├── environments
│ │ └── load_dotenv.py
│ ├── lib
│ │ ├── __init__.py
│ │ ├── api
│ │ ├── compute
│ │ ├── constructs
│ │ ├── database
│ │ ├── skeleton
│ │ └── storage
│ └── main.py
├── tests
│ ├── __init__.py
│ └── test_main.py
└── tox.ini
0Để có được đường dẫn tương đối trong Python, trước tiên bạn phải tìm vị trí của thư mục làm việc nơi lưu trữ tập lệnh hoặc mô-đun. Sau đó, từ vị trí đó, bạn có được đường dẫn tương đối đến tệp muốn
Mục lục
1- Đường dẫn tương đối trong Python là gì?
- Cách tìm đường dẫn tương đối trong Python
- Phần kết luận
Đường dẫn tương đối trong Python là gì?
Đường dẫn tương đối trong Python là đường dẫn mô tả vị trí của thư mục so với điểm vào nơi bạn chạy tập lệnh Python
Vì vậy, giả sử bạn chạy mã Python của mình trong
~/home/projects/example-project/
├── app.py
├── cdk.context.json
├── cdk.json
├── mypy.ini
├── README.md
├── requirements.txt
├── src
│ ├── __init__.py
│ ├── bin
│ │ ├── __init__.py
│ │ ├── environments
│ │ └── load_dotenv.py
│ ├── lib
│ │ ├── __init__.py
│ │ ├── api
│ │ ├── compute
│ │ ├── constructs
│ │ ├── database
│ │ ├── skeleton
│ │ └── storage
│ └── main.py
├── tests
│ ├── __init__.py
│ └── test_main.py
└── tox.ini
1Đây là điểm vào nơi bạn chạy mã cấp cao nhất của mô-đun python và đóng vai trò là điểm bắt đầu cho đường dẫn tương đối. Đường dẫn tương đối thường bắt đầu bằng
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
8, import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
9 hoặc ~/home/projects/example-project/
├── app.py
├── cdk.context.json
├── cdk.json
├── mypy.ini
├── README.md
├── requirements.txt
├── src
│ ├── __init__.py
│ ├── bin
│ │ ├── __init__.py
│ │ ├── environments
│ │ └── load_dotenv.py
│ ├── lib
│ │ ├── __init__.py
│ │ ├── api
│ │ ├── compute
│ │ ├── constructs
│ │ ├── database
│ │ ├── skeleton
│ │ └── storage
│ └── main.py
├── tests
│ ├── __init__.py
│ └── test_main.py
└── tox.ini
0Để giải thích thêm, chúng ta hãy xem các tệp và thư mục trong
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
0 này~/home/projects/example-project/
├── app.py
├── cdk.context.json
├── cdk.json
├── mypy.ini
├── README.md
├── requirements.txt
├── src
│ ├── __init__.py
│ ├── bin
│ │ ├── __init__.py
│ │ ├── environments
│ │ └── load_dotenv.py
│ ├── lib
│ │ ├── __init__.py
│ │ ├── api
│ │ ├── compute
│ │ ├── constructs
│ │ ├── database
│ │ ├── skeleton
│ │ └── storage
│ └── main.py
├── tests
│ ├── __init__.py
│ └── test_main.py
└── tox.ini
Vì vậy, ví dụ: nếu bạn cần truy cập
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
1 thì đường dẫn tương đối là import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
2 trong dự án Python nàySử dụng đường dẫn tương đối đơn giản hóa mã vì bạn không cần viết đường dẫn tuyệt đối đầy đủ để tìm tệp hoặc thư mục trong dự án Python của mình
Cách tìm đường dẫn tương đối trong Python
Bạn có thể chạy tập lệnh 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 mà bạn muốn nhập vào mã của mình thay vì mã hóa cứng mã đó. Điều này có thể được thực hiện bằng cách kết hợp đường dẫn tuyệt đối với đường dẫn tương đối để lấy tệp hoặc thư mục trong dự án của bạn
Chúng tôi sẽ sử dụng
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
3 từ ví dụ trước và từ thư mục làm việc này, chúng tôi muốn lấy. /src/lib đường dẫn tương đốiĐể có được đường dẫn tương đối trong Python, bạn viết đoạn mã sau
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
Trước tiên, bạn phải nhập mô-đun
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
4 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 tạo biến
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
5 để tìm nạp thư mục hiện tại so với thư mục gốc. Đây là đường dẫn đầy đủ đến thư mục làm việc của bạn, trong trường hợp này là import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
6Lợi thế để có được đường dẫn tuyệt đối trên hệ điều hành của bạn là nó có thể chạy tập lệnh trên các hệ thống khác nhau trên các thư mục làm việc khác nhau
Biến
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
7 là một chuỗi trong đó bạn xác định vị trí của thư mục mà bạn muốn tìm nạp so với thư mục làm việc. Trong trường hợp này, import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
8Sau đó, chúng tôi sử dụng
import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
5 và kết hợp nó qua import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
30 với import os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
7 để có đường dẫn đầy đủ đến thư mục lib, kết quả làimport os
absolute_path = os.path.dirname[__file__]
relative_path = "src/lib"
full_path = os.path.join[absolute_path, relative_path]
3Phần kết luận
Như bạn có thể thấy, một đường dẫn tương đối có thể hữu ích để đơn giản hóa mã của bạn mà không cần phải viết ra đường dẫn đầy đủ đến một thư mục hoặc tệp trong mã Python của bạn
Thay vào đó, bạn chỉ trỏ đến vị trí của một thư mục liên quan đến thư mục làm việc của bạn hoặc điểm vào của tập lệnh Python của bạn