trong ngắn hạn. con đường. abspath[path] tạo đường dẫn tương đối thành đường dẫn tuyệt đối. Và nếu đường dẫn được cung cấp chính là đường dẫn tuyệt đối thì hàm sẽ trả về cùng một đường dẫn
hệ điều hành tương tự. con đường. relpath[path] tạo đường dẫn tuyệt đối đến đường dẫn tương đối. Và nếu đường dẫn được cung cấp chính là đường dẫn tương đối thì hàm sẽ trả về cùng một đường dẫn
Ví dụ dưới đây có thể cho bạn hiểu đúng về khái niệm trên
giả sử tôi có một tệp input_file_list. txt chứa danh sách các tệp đầu vào sẽ được xử lý bởi tập lệnh python của tôi
D. \conc\input1. dic
D. \conc\input2. dic
D. \Copyioconc\input_file_list. txt
Nếu bạn thấy cấu trúc thư mục ở trên, input_file_list. txt có trong thư mục Copyofconc và các tệp được xử lý bởi tập lệnh python có trong thư mục conc
Nhưng nội dung của file input_file_list. txt như hình bên dưới
\conc\input1. dic
\conc\input2. dic
Và tập lệnh python của tôi có trong D. lái xe
Và đường dẫn tương đối được cung cấp trong input_file_list. txt có liên quan đến đường dẫn của input_file_list. tập tin txt
Vì vậy, khi tập lệnh python sẽ thực thi thư mục làm việc hiện tại [sử dụng os. getcwd[] để lấy đường dẫn]
Vì đường dẫn tương đối của tôi có liên quan đến input_file_list. txt, đó là "D. \Copyofconc", tôi phải thay đổi thư mục làm việc hiện tại thành "D. \Copyofconc"
Vì vậy, tôi phải sử dụng os. chdir['D. \Copyofconc'], vì vậy thư mục làm việc hiện tại sẽ là "D. \Copyofconc"
Bây giờ để lấy các tập tin input1. dic và đầu vào2. dic, tôi sẽ đọc những dòng ". \conc\input1. dic" sau đó sẽ sử dụng lệnh
input1_path= hệ điều hành. con đường. lối bỏ qua ['. \conc\input1. dic'] [để thay đổi đường dẫn tương đối thành đường dẫn tuyệt đối. Đây là thư mục làm việc hiện tại là "D. \Copyofconc", tệp ". \conc\input1. dic" sẽ được truy cập liên quan đến "D. \Copyofconc"]
Nhập trong Python tương tự như #include header_file trong C/C++. 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. Câu lệnh nhập khẩu là cách phổ biến nhất để gọi máy móc nhập khẩu, nhưng nó không phải là cách duy nhất. Câu lệnh nhập bao gồm từ khóa nhập cùng với tên của mô-đun. Câu lệnh nhập bao gồm hai thao tác, nó tìm kiếm một mô-đun và nó liên kết kết quả tìm kiếm với một tên trong phạm vi cục bộ. Khi một mô-đun được nhập, Python sẽ chạy tất cả mã trong tệp mô-đun và cung cấp sẵn cho tệp nhập. Khi một mô-đun được nhập, trước tiên trình thông dịch sẽ tìm kiếm mô-đun đó trong sys. mô-đun, là bộ đệm của tất cả các mô-đun đã được nhập trước đó. Nếu nó không được tìm thấy thì nó sẽ tìm kiếm trong tất cả các mô-đun tích hợp có tên đó, nếu nó được tìm thấy thì trình thông dịch sẽ chạy tất cả mã và được cung cấp cho tệp. Nếu không tìm thấy mô-đun thì nó sẽ tìm kiếm một tệp có cùng tên trong danh sách các thư mục được cung cấp bởi biến sys. con đường. hệ thống. đường dẫn là một biến chứa danh sách các đường dẫn chứa thư viện python, gói và thư mục chứa tập lệnh đầu vào. Ví dụ, một mô-đun có tên toán học được nhập vào thì trình thông dịch sẽ tìm kiếm nó trong các mô-đun tích hợp, nếu không tìm thấy nó sẽ tìm kiếm một tệp có tên là toán học. py trong danh sách các thư mục được cung cấp bởi sys. con đường.
Python3
# Python program importing
# math module
import
math
print
[math.pi]
đầu ra
3.141592653589793
Cú pháp báo cáo nhập khẩu.
Người dùng có thể nhập cả gói và mô-đun. [Lưu ý rằng việc nhập một gói về cơ bản sẽ nhập __init__ của gói. tệp py dưới dạng mô-đun. ] Người dùng cũng có thể nhập các đối tượng cụ thể từ gói hoặc mô-đun. Nói chung có hai loại cú pháp nhập khẩu. Khi bạn sử dụng cái đầu tiên, bạn nhập tài nguyên trực tiếp
import gfg
gfg có thể là một gói hoặc một mô-đun. Khi người dùng sử dụng cú pháp thứ hai, thì người dùng sẽ nhập tài nguyên từ một gói hoặc mô-đun khác
from gfg import geek
đam mê có thể là một mô-đun, gói con hoặc đối tượng, chẳng hạn như một lớp hoặc hàm.
Kiểu dáng của câu lệnh nhập khẩu
, hướng dẫn phong cách chính thức cho python, có một bộ quy tắc về cách xây dựng mã python để tối đa hóa khả năng đọc của nó. Để viết báo cáo nhập khẩu, có một số điểm cần tuân theo
- Nội dung nhập phải luôn được ghi ở đầu tệp, ngay sau bất kỳ nhận xét và chuỗi tài liệu mô-đun nào
- Các mục nhập thường phải được phân tách bằng khoảng trống
- Nhập khẩu nên được nhóm lại theo thứ tự sau
- Nhập thư viện tiêu chuẩn [các mô-đun tích hợp sẵn của Python]
- Nhập khẩu của bên thứ ba có liên quan
- Nhập ứng dụng cục bộ/thư viện cụ thể
Cũng nên sắp xếp các câu lệnh nhập theo thứ tự bảng chữ cái trong mỗi nhóm nhập.
Python3
import gfg0
import gfg1
import
math
import
import gfg5
import gfg6
import gfg7
import gfg8
import
from gfg import geek0
import gfg7
from gfg import geek2
import
from gfg import geek4
import gfg7
from gfg import geek6
import
from gfg import geek8
from gfg import geek9
import gfg7
from pkg1.subpkg2.subpkg3.subpkg4.module5 import fun61
import
from pkg1.subpkg2.subpkg3.subpkg4.module5 import fun63
import gfg7
from pkg1.subpkg2.subpkg3.subpkg4.module5 import fun65_______32_______
from pkg1.subpkg2.subpkg3.subpkg4.module5 import fun67
Nhập khẩu tuyệt đối và tương đối trong Python
Nhập khẩu tuyệt đối trong Python
Nhập tuyệt đối liên quan đến một đường dẫn đầy đủ i. e. , từ thư mục gốc của dự án đến mô-đun mong muốn. Trạng thái nhập tuyệt đối mà tài nguyên sẽ được nhập bằng đường dẫn đầy đủ của nó từ thư mục gốc của dự án
Cú pháp và ví dụ thực tế
Hãy xem chúng ta có cấu trúc thư mục sau.
Ở đây có một thư mục tên là project, bên dưới có 2 thư mục con là pkg1, pkg2. pkg1 có hai mô-đun, mô-đun1 và mô-đun2. pkg2 chứa ba mô-đun, mô-đun 3, mô-đun 4, __init__. py và một tên gói con subpkg1 chứa module5. py. Hãy giả sử như sau
- pkg1 / mô-đun1. py chứa một chức năng, fun1
- pkg2 / mô-đun3. py chứa một chức năng, fun2
- pkg2/subpkg1/mô-đun5. py chứa hàm fun3
Python3
import gfg0
from pkg1.subpkg2.subpkg3.subpkg4.module5 import fun69
# Python program importing
0
# Python program importing
1
import gfg7
# Python program importing
3import
# Python program importing
5import
# Python program importing
7
import gfg7
# Python program importing
9import
# math module
1
# math module
2
import gfg7
# math module
4import
# math module
6import
# math module
8
# math module
9
import gfg7
import
1import
import
3Trong ví dụ này, chúng tôi đang nhập các mô-đun bằng cách viết đường dẫn đầy đủ từ thư mục gốc của nó.
Ưu và nhược điểm của nhập khẩu tuyệt đối
ưu
- Nhập tuyệt đối rất hữu ích vì chúng rõ ràng và đi thẳng vào vấn đề
- Nhập tuyệt đối dễ dàng biết chính xác nguồn tài nguyên đã nhập từ đâu, chỉ bằng cách nhìn vào câu lệnh
- Nhập tuyệt đối vẫn hợp lệ ngay cả khi vị trí hiện tại của câu lệnh nhập thay đổi
Nhược điểm.
Nếu cấu trúc thư mục rất lớn thì việc sử dụng nhập khẩu tuyệt đối là không có ý nghĩa. Trong trường hợp như vậy, sử dụng nhập khẩu tương đối hoạt động tốt
from pkg1.subpkg2.subpkg3.subpkg4.module5 import fun6
Nhập khẩu tương đối trong Python
Nhập tương đối chỉ định một đối tượng hoặc mô-đun được nhập từ vị trí hiện tại của nó, đó là vị trí chứa câu lệnh nhập. Có hai loại nhập khẩu tương đối
- Nhập khẩu tương đối ngầm định – Nhập khẩu tương đối ngầm định đã bị từ chối trong Python[3. x]
- Nhập tương đối rõ ràng – Nhập tương đối rõ ràng đã được phê duyệt trong Python[3. x]
Cú pháp và ví dụ thực tế.
Cú pháp nhập tương đối phụ thuộc vào vị trí hiện tại cũng như vị trí của mô-đun hoặc đối tượng được nhập. Nhập khẩu tương đối sử dụng dấu chấm [. ] ký hiệu để xác định một vị trí. Một dấu chấm đơn xác định rằng mô-đun nằm trong thư mục hiện tại, hai dấu chấm cho biết mô-đun nằm trong thư mục mẹ của vị trí hiện tại và ba dấu chấm cho biết rằng nó nằm trong thư mục ông bà, v.v. Hãy xem chúng ta có cấu trúc thư mục sau.