Nhập tệp bằng Python

Trong khi làm việc trên các dự án lớn, chúng ta có thể gặp phải tình huống muốn nhập một mô-đun từ một thư mục khác. Nhưng vì một số lý do, mô-đun có thể không được nhập chính xác. Bây giờ đừng lo lắng nếu mô-đun của bạn không được nhập chính xác. Trong bài viết này, chúng tôi sẽ thảo luận về cách nhập mô-đun từ thư mục khác.  

Ghi chú. Một mô-đun chỉ là một chương trình Python kết thúc bằng. py và một thư mục chứa mô-đun trở thành một gói

Cấu trúc thư mục

 - Folder_1
    - main.py
 - Folder_2
     - module1.py

Giả sử, để nhập cách nhập tệp trong Python, chúng ta có hai thư mục khác nhau, một chứa chính. py là tệp Python chính của chúng tôi, nơi chúng tôi muốn nhập module1 từ Folder_2.  

Mô-đun 1. chứa hai chức năng được gọi là add và Odd_even. Hàm add sẽ nhận hai đối số và trả về phép cộng của chúng. Hàm chẵn lẻ sẽ chỉ nhận một đối số và in Even nếu số chẵn hoặc in Odd nếu số lẻ

mô-đun 1. py

Python3




- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
2

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
3
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
4

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
5
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
6
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
7____18
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
9

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
0

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
1

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
3
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
3

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
5
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
5
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
6_______17
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
8
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
9
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
9
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
21
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
22

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
23
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
24
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
25
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
26
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
27

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
5
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
29____122

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
23
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
24
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
25
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
34
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
27

Nếu chúng ta chỉ cố gắng nhập module1 từ Thư mục_2, chúng ta sẽ gặp phải lỗi sau

chính. py

Python3




- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
36

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
37
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
38

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
39

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
40
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
41
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
27

đầu ra

Nhập tệp bằng Python

Lỗi

ModuleNotFoundError, vì theo mặc định, trình thông dịch Python sẽ chỉ kiểm tra tệp trong thư mục hiện tại và chúng tôi cần đặt đường dẫn tệp theo cách thủ công để nhập các mô-đun từ thư mục khác. Chúng ta có thể làm điều này bằng nhiều cách khác nhau. Những cách này được thảo luận chi tiết dưới đây

Phương pháp 1. Nhập mô-đun từ thư mục khác bằng mô-đun sys

Chúng ta có thể sử dụng sys. path để thêm đường dẫn của thư mục khác mới (thư mục từ nơi chúng tôi muốn nhập mô-đun) vào đường dẫn hệ thống để Python cũng có thể tìm mô-đun trong thư mục đó nếu nó không tìm thấy mô-đun trong thư mục hiện tại của nó. như hệ thống. đường dẫn thuộc lớp loại danh sách, vì vậy, chúng ta có thể dễ dàng sử dụng phương thức chèn để thêm đường dẫn thư mục

Python3




- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
43

________ 144 ________ 145 ________ 137 ________ 147

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
37
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
49

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
50

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
51
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
21____153
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
54
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
27

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
56

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
57

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
39

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
59
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
41____127

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
62

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
24
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
25
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
65
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
66
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
8
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
53
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
8
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
70

đầu ra

Nhập tệp bằng Python

sử dụng sys

Phương pháp 2. Sử dụng biến môi trường PYTHONPATH

Tương tự, nếu bạn không muốn sử dụng module sys để đặt đường dẫn cho thư mục mới. Bạn có thể chỉ định đường dẫn thư mục cho biến PYTHONPATH và chương trình của bạn vẫn hoạt động.  

Trong Linux, chúng ta có thể sử dụng lệnh sau trong terminal để đặt đường dẫn

xuất PYTHONPATH=’đường dẫn/đến/thư mục’

Trong hệ thống Windows

SET PYTHONPATH=”đường dẫn/đến/thư mục”

Để xem biến PYTHONPATH có giữ đường dẫn của thư mục mới hay không, chúng ta có thể sử dụng lệnh sau

Bạn có thể nhập tệp vào Python không?

Các mô-đun Python có thể truy cập mã từ một mô-đun khác bằng cách nhập tệp/hàm bằng cách nhập .

Làm cách nào để nhập tệp hoạt động trong Python?

Khi một gói được nhập, Python sẽ chạy tất cả mã trong __init__ của gói. py, nếu có một tệp như vậy . Tất cả các đối tượng được xác định trong mô-đun hoặc gói __init__. py được cung cấp cho nhà nhập khẩu.