Python lấy thư mục gốc

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ày

Sử 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ình

Sau đó, 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]
6

Lợ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]
8

Sau đó, 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]
3

Phầ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

Chủ Đề