Tệp nhập Python theo tên

Trong Python, một mô-đun là một đơn vị mã Python có thể được nhập [tải và sử dụng] bởi mã Python khác. Một mô-đun có thể chứa các định nghĩa [như hàm và hằng số], cũng như các câu lệnh khởi tạo các định nghĩa đó. Khi mã mô-đun được viết, nó có thể được sử dụng lại bởi bất kỳ tập lệnh nào nhập mô-đun

Một cách phổ biến để tạo một mô-đun Python là tạo một tệp có tên tệp kết thúc bằng

import mymodule

mymodule.say_hello[]
3 và viết mã mô-đun vào đó. Nếu chúng tôi sử dụng một phần mở rộng tệp khác trong tên tệp hoặc không có phần mở rộng nào, thì các câu lệnh tiêu chuẩn
import mymodule

mymodule.say_hello[]
4 hiển thị bên dưới sẽ không hoạt động và thay vào đó chúng tôi sẽ phải sử dụng
import mymodule

mymodule.say_hello[]
5, yêu cầu nhiều mã hơn [thông tin thêm bên dưới]

Để minh họa cách sử dụng tiêu chuẩn của

import mymodule

mymodule.say_hello[]
4, giả sử chúng ta tạo một tệp có tên là
import mymodule

mymodule.say_hello[]
7 với định nghĩa hàm sau

def say_hello[]:
   print[ 'Hello, world!' ]

1
2
def say_hello[]:
   print[ 'Hello, world!' ]

Bây giờ mỗi khi chúng tôi muốn viết "Xin chào, thế giới. " lên màn hình từ tập lệnh Python, chúng ta chỉ cần nhập mô-đun này thay vì phải viết lại thông báo. Nó cũng cho phép chúng tôi thay đổi một dòng mã bên trong

import mymodule

mymodule.say_hello[]
7 thay vì trong nhiều tập lệnh khác nhau nếu chúng tôi quyết định thay đổi thông báo mà chúng tôi muốn hiển thị trong tất cả các tập lệnh sử dụng chức năng này

Nhập tệp trong cùng thư mục

Giả sử chúng ta có hai tệp Python trong cùng một thư mục

myscript/

mymodule. py

kịch bản. py

import mymodule

mymodule.say_hello[]
7 chứa hàm
import mymodule

mymodule.say_hello[]
00 mà chúng ta đã thấy ở trên

Để gọi

import mymodule

mymodule.say_hello[]
00 từ bên trong
import mymodule

mymodule.say_hello[]
02, chúng ta có thể viết vào
import mymodule

mymodule.say_hello[]
02

import mymodule

mymodule.say_hello[]

import mymodule

mymodule.say_hello[]
0
import mymodule

mymodule.say_hello[]
6

Tên được sử dụng trong câu lệnh

import mymodule

mymodule.say_hello[]
4 chỉ đơn giản là tên tệp của mô-đun mà không có phần mở rộng
import mymodule

mymodule.say_hello[]
3 ở cuối

Nhập tệp trong thư mục con [Python 3. 3 trở lên]

Python phiên bản 3. 3 trở lên cho phép dễ dàng nhập các mô-đun trong thư mục con của thư mục tập lệnh hiện tại. Nếu bạn đang sử dụng phiên bản Python thấp hơn 3. 3, thay vào đó, bạn có thể làm theo các bước trong Nhập tệp vào một thư mục khác

Giả sử chúng ta di chuyển

import mymodule

mymodule.say_hello[]
7 đến thư mục con có tên là
import mymodule

mymodule.say_hello[]
07

myscript/

thư mục con/

mymodule. py

kịch bản. py

Sau đó, nếu chúng ta đang sử dụng Python 3. 3 hoặc cao hơn, chúng ta có thể viết bằng

import mymodule

mymodule.say_hello[]
02

import mymodule

mymodule.say_hello[]
2

import mymodule

mymodule.say_hello[]
0
import mymodule

mymodule.say_hello[]
4

Trong đường dẫn hệ thống tệp, chúng tôi sẽ tách các thành phần của đường dẫn bằng cách sử dụng

import mymodule

mymodule.say_hello[]
09 [Linux, macOS, v.v. ] hoặc
import mymodule

mymodule.say_hello[]
60 [Windows]. Tuy nhiên, trong câu lệnh
import mymodule

mymodule.say_hello[]
4 của Python, chúng ta phân tách các thành phần đường dẫn bằng dấu chấm [
import mymodule

mymodule.say_hello[]
62]

Chúng ta cũng có thể gán tên ngắn hơn cho mô-đun bằng cách sử dụng câu lệnh

import mymodule

mymodule.say_hello[]
4-
import mymodule

mymodule.say_hello[]
64

import mymodule

mymodule.say_hello[]
1

import mymodule

mymodule.say_hello[]
0
1
2
1

trong đó

import mymodule

mymodule.say_hello[]
65 là bất kỳ tên nào chúng tôi chọn. Chúng ta cũng có thể nhập hàm trực tiếp

1
2
2

import mymodule

mymodule.say_hello[]
0
1
2
4

Điều này hoạt động ngay cả khi có nhiều cấp thư mục con. Ví dụ: nếu chúng ta có cấu trúc thư mục sau

myscript/

chữ cái/

phiên bản thử nghiệm/

mymodule. py

kịch bản. py

chúng ta có thể viết bằng

import mymodule

mymodule.say_hello[]
02

1
2
5

import mymodule

mymodule.say_hello[]
0
1
2
7

Nhập tệp trong một thư mục khác

Bây giờ, giả sử rằng chúng ta di chuyển

import mymodule

mymodule.say_hello[]
7 đến một thư mục nằm ngoài cây thư mục hiện tại

/

chữ cái/

phiên bản thử nghiệm/

mymodule. py

myscript/

kịch bản. py

Theo mặc định, Python tìm kiếm các tệp trong cùng thư mục [bao gồm cả thư mục con] với tệp tập lệnh hiện tại, cũng như ở các vị trí tiêu chuẩn khác được xác định trong

import mymodule

mymodule.say_hello[]
68. Nếu bạn muốn biết những địa điểm này là gì, bạn có thể in ra biến
import mymodule

mymodule.say_hello[]
68 như thế này

1
2
8

1
2
9
def say_hello[]:
   print[ 'Hello, world!' ]
0

Tuy nhiên, nếu tệp chúng tôi muốn nhập hoàn toàn ở một nơi khác, trước tiên chúng tôi sẽ phải cho Python biết nơi cần tìm bằng cách thêm các thư mục tìm kiếm vào

import mymodule

mymodule.say_hello[]
68. Trong ví dụ của chúng tôi, chúng tôi có thể viết bằng
import mymodule

mymodule.say_hello[]
02

def say_hello[]:
   print[ 'Hello, world!' ]
1

def say_hello[]:
   print[ 'Hello, world!' ]
2____73

Lưu ý rằng đường dẫn được thêm vào

import mymodule

mymodule.say_hello[]
68 là đường dẫn tuyệt đối. Nếu chúng tôi đã sử dụng một đường dẫn tương đối, thì đường dẫn đó sẽ phân giải khác nhau dựa trên thư mục mà người dùng đang chạy tập lệnh, không liên quan đến đường dẫn của
import mymodule

mymodule.say_hello[]
02

Để nối thêm một thư mục liên quan đến tệp tập lệnh này, bạn có thể sử dụng

import mymodule

mymodule.say_hello[]
24 để lấy đường dẫn đầy đủ của tập lệnh hiện tại và tạo đường dẫn đầy đủ để nhập từ đó. Trong
import mymodule

mymodule.say_hello[]
02 chúng ta có thể viết

def say_hello[]:
   print[ 'Hello, world!' ]
4

def say_hello[]:
   print[ 'Hello, world!' ]
5
def say_hello[]:
   print[ 'Hello, world!' ]
6

Nhập bất kỳ tệp nào, bao gồm phần mở rộng tệp không phải ____03 [Python 3. 4 trở lên]

Đường dẫn tuyệt đối

Python phiên bản 3. 4 trở lên cung cấp chức năng thông qua thư viện

import mymodule

mymodule.say_hello[]
5 tích hợp cho phép chúng tôi tải bất kỳ tệp nào ở bất kỳ đâu dưới dạng mô-đun Python, ngay cả khi tên tệp của tệp không kết thúc bằng
import mymodule

mymodule.say_hello[]
3 [tệp có thể có phần mở rộng tệp khác hoặc không có phần mở rộng tệp nào cả

Ví dụ: giả sử chúng ta có cấu trúc thư mục sau

/

chữ cái/

phiên bản thử nghiệm/

mymodule

myscript/

kịch bản. py

Lưu ý ở đây rằng tên tệp

import mymodule

mymodule.say_hello[]
29 không có phần mở rộng tệp. Trong trường hợp này, chúng tôi không thể sử dụng câu lệnh
import mymodule

mymodule.say_hello[]
4 đơn giản để nhập tệp đó. Thay vào đó, chúng ta có thể viết bằng
import mymodule

mymodule.say_hello[]
02

def say_hello[]:
   print[ 'Hello, world!' ]
7

def say_hello[]:
   print[ 'Hello, world!' ]
8
def say_hello[]:
   print[ 'Hello, world!' ]
9

Lưu ý rằng đường dẫn được truyền vào

import mymodule

mymodule.say_hello[]
02 là đường dẫn tuyệt đối. Nếu chúng tôi đã sử dụng một đường dẫn tương đối như
import mymodule

mymodule.say_hello[]
03, thì đường dẫn đó sẽ phân giải khác nhau dựa trên thư mục mà người dùng đang chạy tập lệnh, không liên quan đến đường dẫn của
import mymodule

mymodule.say_hello[]
02

Đường dẫn tương đối

Nếu chúng tôi muốn tham chiếu một tệp có liên quan đến đường dẫn của tệp tập lệnh hiện tại, trước tiên chúng tôi có thể sử dụng

import mymodule

mymodule.say_hello[]
24 để lấy đường dẫn của tệp tập lệnh hiện tại, sau đó xây dựng một đường dẫn đầy đủ từ đó

Làm cách nào để nhập tệp bằng Python?

Nếu bạn có tệp python của riêng mình muốn nhập, bạn có thể sử dụng câu lệnh nhập như sau. >>> nhập my_file # giả sử bạn có tệp my_file. py trong thư mục hiện tại. # Đối với các tệp trong các thư mục khác, hãy cung cấp đường dẫn đến tệp đó, tuyệt đối hoặc tương đối.

Tôi có thể nhập __ init __ không?

Có hai loại gói trong python, gói thông thường và gói không gian tên. Cái trước yêu cầu __init__. py trong khi cái sau thì không. Bất kỳ thư mục nào có tệp init python đều được python đánh dấu là gói và có thể được nhập .

Tệp __ init __ trong Python là gì?

__init__. các tệp py được bắt buộc để Python xử lý các thư mục chứa tệp dưới dạng các gói . Điều này ngăn các thư mục có tên chung, chẳng hạn như chuỗi, vô tình ẩn các mô-đun hợp lệ xảy ra sau này trên đường dẫn tìm kiếm mô-đun.

Làm cách nào để nhập mô-đun động Python?

Tải động các mô-đun hoặc lớp .
Bằng cách sử dụng phương thức __import__[]. __import__[] là một phương thức dunder [phương thức của lớp bắt đầu và kết thúc bằng dấu gạch dưới kép còn được gọi là phương thức ma thuật] và tất cả các lớp đều sở hữu nó. .
Sử dụng mô-đun imp. Các mô-đun có thể được nhập động bởi mô-đun imp trong python

Chủ Đề