Trong bài viết này, chúng tôi sẽ học cách nhập một mô -đun từ thư mục mẹ. Từ Python 3.3, việc tham khảo hoặc nhập một mô -đun trong thư mục cha không được phép, từ ví dụ dưới đây, bạn có thể hiểu rõ điều này.
Trong thư mục cha, chúng tôi có tệp phân chia, geek.py và trong thư mục con, chúng tôi có một tệp python có tên Temp.py, bây giờ hãy thử xem chúng tôi có thể nhập mô -đun GEEKS trong thư mục cha từ tệp Temp.py In các thư mục con.
Geek.py [Mô -đun trong thư mục cha]
Python3
def
geek_method[]:
print
[
"This method in geeks module.......bye"
]
Temp.py [tệp Python trong thư mục con]
Python3
from
This method in geeks module.......bye0
This method in geeks module.......bye1
This method in geeks module.......bye2
This method in geeks module.......bye3
Như chúng ta đã thảo luận trước đó, không thể nhập một mô -đun từ thư mục cha, vì vậy điều này dẫn đến một lỗi như thế này.
Traceback [cuộc gọi gần đây nhất cuối cùng]:
& nbsp; Tệp C:
& nbsp; & nbsp; từ các chuyên viên nhập khẩu ParentDirectory
ModulenotFounderror: Không có mô -đun có tên ‘ParentDirectory
Bây giờ, hãy để Lừa học cách nhập một mô -đun từ thư mục Earpent: parent directory:
Để nhập một mô -đun, thư mục có mô -đun đó phải có mặt trên Pythonpath. Đây là một biến môi trường chứa danh sách các gói sẽ được tải bởi Python. Danh sách các gói trình bày trong PythonPath cũng có trong sys.path, vì vậy sẽ thêm đường dẫn thư mục cha vào sys.path.
Đối với công việc của chúng tôi, chúng tôi sử dụng ba cách tiếp cận khác nhau được giải thích dưới đây với sự trợ giúp của các ví dụ.
Phương pháp 1: Nhập từ thư mục mẹ bằng phương pháp sys.path
Ở đây chúng tôi sẽ sử dụng mô -đun SYS và đặt đường dẫn trực tiếp đến mô -đun cần thiết.
Thêm thư mục cha vào sys.path bằng phương thức append []. Đây là một chức năng tích hợp của mô-đun SYS có thể được sử dụng với một biến đường dẫn để thêm một đường dẫn cụ thể để các phiên dịch viên tìm kiếm. Ví dụ sau đây cho thấy làm thế nào điều này có thể được thực hiện.append[] method. It is a built-in function of the sys module that can be used with a path variable to add a specific path for interpreters to search. The following example shows how this can be done.
Python3
This method in geeks module.......bye1
This method in geeks module.......bye5
This method in geeks module.......bye6
This method in geeks module.......bye7
]
from
def
0
This method in geeks module.......bye1
def
2def
3
Output:
This method in geeks module.......bye
Phương pháp 2: Nhập từ thư mục cha bằng phương thức Os.Path.Abpath [] os.path.abspath[] method
Ở đây chúng tôi sẽ sử dụng mô -đun SYS cũng như mô -đun đường dẫn để lấy thư mục và đặt đường dẫn trực tiếp đến mô -đun cần thiết.
Cú pháp: OS.Path.Abspath [Path] os.path.abspath[path]
Tham số: Đường dẫn: Một đối tượng giống như đường dẫn biểu thị đường dẫn hệ thống tệp.
Path: A path-like object representing a file system path.Loại trả về: Phương thức này trả về một phiên bản chuẩn hóa của đường dẫn đường dẫn. This method returns a normalized version of the pathname path.
Đầu tiên chúng tôi sẽ nhận được tên của thư mục trong đó tệp temp.py hiện đang sử dụng path.Path [__ tệp __].
Python3
This method in geeks module.......bye1
def
5This method in geeks module.......bye1
This method in geeks module.......bye5
This method in geeks module.......bye6
This method in geeks module.......bye7
]
geek_method[]:
1
from
def
0
This method in geeks module.......bye1
def
2def
3
Output:
This method in geeks module.......bye
Phương pháp 2: Nhập từ thư mục cha bằng phương thức Os.Path.Abpath []os.path.dirname method
Ở đây chúng tôi sẽ sử dụng mô -đun SYS cũng như mô -đun đường dẫn để lấy thư mục và đặt đường dẫn trực tiếp đến mô -đun cần thiết.
Cú pháp: OS.Path.Abspath [Path] os.path.dirname[path]
Tham số: Đường dẫn: Một đối tượng giống như đường dẫn biểu thị đường dẫn hệ thống tệp.
path: A path-like object representing a file system path.Loại trả về: Phương thức này trả về một phiên bản chuẩn hóa của đường dẫn đường dẫn. This method returns a string value which represents the directory name from the specified path.
Đầu tiên chúng tôi sẽ nhận được tên của thư mục trong đó tệp temp.py hiện đang sử dụng path.Path [__ tệp __].
Python3
This method in geeks module.......bye1
This method in geeks module.......bye5
This method in geeks module.......bye6
This method in geeks module.......bye7
]
from
def
0
This method in geeks module.......bye1
def
2Phương pháp 2: Nhập từ thư mục cha bằng phương thức Os.Path.Abpath []
7
Ở đây chúng tôi sẽ sử dụng mô -đun SYS cũng như mô -đun đường dẫn để lấy thư mục và đặt đường dẫn trực tiếp đến mô -đun cần thiết.
This method in geeks module.......bye3
Output: