Hướng dẫn python import test file - tệp kiểm tra nhập python

Có thể trùng lặp: Nhập mô -đun động trong Python Dynamic module import in Python
Dynamic module import in Python

Nội dung chính ShowShow

  • Tổng quan
  • Giới thiệu
  • Sử dụng Nhập khẩu để nhập các mô -đun
  • Sự kết luận
  • Liên kết tham chiếu
  • Bài viết liên quan:
  • Làm cách nào để nhập tệp vào Python?
  • __ nhập __ làm gì trong Python?
  • Làm thế nào để bạn nhập một chuỗi vào Python?
  • __ Trình tải __ trong Python là gì?

Tôi dự định sẽ sớm tạo một bộ tệp vào một lúc nào đó và cách tốt nhất để tổ chức nó là có một danh sách, danh sách đó sẽ ở đầu một tập tin và sau khi nó sẽ có một số lượng mã vô lý để xử lý Danh sách đó kiểm soát những gì và cách nó hoạt động. Tôi đang tìm cách viết danh sách chỉ một lần và Danh sách nói là danh sách các tên thư mục và tệp trong định dạng này:

[(folder/filename, bool, bool, int), (folder/filename, bool, bool, int)]

Như bạn có thể thấy,

for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
2 giống nhau (loại). Tên tệp là tên thư mục với
for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
3 ở cuối, nhưng thực hiện nhập xxx bạn không cần phải nhập xxx.py, vì vậy tôi không thấy điều này gây ra sự cố.

Vấn đề tôi đang gặp phải là nhập khẩu bằng phương pháp này ...

for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)

Vì vậy, đối với mỗi bài kiểm tra tôi có, in tên, lắp ráp một chuỗi chứa đường dẫn (

for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
4), cho ví dụ này, in đường dẫn thử nghiệm, sau đó thêm đường dẫn vào danh sách (____10), sau đó in để xác nhận nó đã xảy ra, sau đó Lắp một chuỗi sẽ được thực hiện bởi

for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
1 cho các thử nghiệm mô -đun chính và cuối cùng là đánh giá nó.

Như bạn có thể thấy, hiện tại tôi phải có một danh sách nhập khẩu ở đầu. Tôi chỉ đơn giản là nhập

for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
2 (nội dung của
for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
2 là tên của mô -đun tôi muốn nhập), vì nó sẽ cố gắng tìm một mô -đun gọi là
for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
2, không phải là một mô -đun gọi là nội dung của
for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
2.

Tôi đã thấy một vài ví dụ về nơi này đã được thực hiện, nhưng không thể tìm thấy bất kỳ công việc nào trong hoàn cảnh của tôi. Nếu ai đó thực sự có thể ném một đoạn mã, điều đó thật tuyệt vời.

Tôi cũng yêu cầu tôi không bị treo, được rút ra, cũng không được sử dụng để sử dụng eval, nó được sử dụng trong một môi trường rất được kiểm soát (danh sách mà nó chu kỳ nằm trong tệp .py, vì vậy không có "người dùng cuối" nên lộn xộn với nó).

Quảng cáo

Quảng cáo

Được gửi bởi Nanodano trên Sun, 11/11/2018 - 18:52

Tổng quan

  • Giới thiệu
  • Sử dụng Nhập khẩu để nhập các mô -đun
  • Sự kết luận
  • Liên kết tham chiếu

Giới thiệu

Sử dụng Nhập khẩu để nhập các mô -đunimportlib! Note that this feature was introduced in Python 3.1 but there is a 2.7 version of importlib though less featured.

Sự kết luận

Liên kết tham chiếu

Sử dụng Nhập khẩu để nhập các mô -đun

Sự kết luậnimportlib provides a simple import_module function that accepts a string name with dot separators. It works just like a normal import except it uses a string to store the name. On import, the file is executed and the module object is returned. If you only need the code run on import it is not necessary to store the returned module.

import importlib

# Contrived example of generating a module named as a string
full_module_name = "mypackage." + "mymodule"

# The file gets executed upon import, as expected.
mymodule = importlib.import_module(full_module_name)

# Then you can use the module like normal
mymodule.func1()
mymodule.func2()

Sự kết luận

Liên kết tham chiếu

Liên kết tham chiếu

  • Bài viết liên quan:
  • Làm cách nào để nhập tệp vào Python?
  • __ nhập __ làm gì trong Python?
  • Làm thế nào để bạn nhập một chuỗi vào Python?

Quảng cáo

Quảng cáo

Được gửi bởi Nanodano trên Sun, 11/11/2018 - 18:52

Sử dụng Nhập khẩu để nhập các mô -đunimportlib! Note that this feature was introduced in Python 3.1 but there is a 2.7 version of importlib though less featured.

Sự kết luậnimportlib provides a simple import_module function that accepts a string name with dot separators. It works just like a normal import except it uses a string to store the name. On import, the file is executed and the module object is returned. If you only need the code run on import it is not necessary to store the returned module.

moduleNames = ['sys', 'os', 're', 'unittest'] 

Trong Python, khi xây dựng một công cụ tạo mã hoặc khung, bạn có thể cần lập trình một chuỗi đại diện cho tên của một mô -đun bạn muốn nhập. Làm thế nào bạn sẽ nhập một mô -đun nếu bạn có tên như một chuỗi? Đây là cách làm điều đó với ImportLib! Lưu ý rằng tính năng này đã được giới thiệu trong Python 3.1 nhưng có phiên bản 2.7 của ImportLib mặc dù ít tính năng hơn.

__import__('unittest', globals=globals())

Dưới đây là lệnh để dễ dàng nhập tất cả các mô -đun được đề cập trong danh sách trên, sử dụng __Import__.

for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
0

Ngoài ra, và cũng cho Python> 2.7, bạn có thể sử dụng mô -đun nhập khẩu để nhập các mô -đun bằng chuỗi tên của chúng. Dưới đây là một ví dụ để nhập mô -đun OS.Path.

for (testName, auto, hardware, bit) in testList:
    print(testName)
    paths = "\\" + testName
    print paths
    addpath(paths)
    sys.modules[testName] = testName # One of a few options I've seen suggested on the net
    print("Path Added")
    test = testName + ".Helloworld()"
    eval(test)
1

Trong bài viết này, chúng tôi đã học được cách nhập các mô -đun Python bằng chuỗi tên của chúng.

Cũng đọc:

Gọi chức năng Python theo tên StringHow để lưu tên người dùng git & mật khẩu cách nào để lấy tên phân loại trong pythonhow để khóa tệp trong pythonhow để sử dụng các biến boolean trong script shellHow to Save Git Username & PasswordHow to Get Classname of Instance in PythonHow to Lock File in PythonHow to Use Boolean Variables in Shell Script
How to Save Git Username & Password
How to Get Classname of Instance in Python
How to Lock File in Python
How to Use Boolean Variables in Shell Script

Bài viết liên quan:

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

cách tốt nhất để nhập khẩu. Các tệp PY là bằng cách của __init__.py ....

Chỉ cần nhập tệp mà không có. Tiện ích mở rộng PY ..

Một thư mục có thể được đánh dấu là một gói, bằng cách thêm một tệp __init__.py trống ..

Bạn có thể sử dụng hàm __Import__, lấy tên mô -đun (không có phần mở rộng) làm tiện ích mở rộng chuỗi ..

__ nhập __ làm gì trong Python?

__Import __ () trong mô -đun Python giúp đưa mã có mặt trong một mô -đun khác bằng cách nhập hàm hoặc mã hoặc tệp bằng cách nhập phương thức Python.Nhập trong Python trả về đối tượng hoặc mô -đun mà chúng tôi đã chỉ định trong khi sử dụng mô -đun nhập.helps in getting the code present in another module by either importing the function or code or file using the import in python method. The import in python returns the object or module that we specified while using the import module.helps in getting the code present in another module by either importing the function or code or file using the import in python method. The import in python returns the object or module that we specified while using the import module.

Làm thế nào để bạn nhập một chuỗi vào Python?

Nói chung, để đọc nội dung tệp dưới dạng chuỗi, hãy làm theo các bước này ....

Mở tệp ở chế độ đọc.Gọi hàm mở () hàm với đường dẫn tệp làm đối số.....

Phương thức gọi () trên đối tượng tệp.Read () Phương thức trả về toàn bộ nội dung của tệp dưới dạng chuỗi ..

Đóng tệp bằng cách gọi phương thức đóng () trên đối tượng tệp ..

__ Trình tải __ trong Python là gì?

__loader__ là một thuộc tính được đặt trên mô -đun được nhập bởi trình tải của nó.Truy cập nó sẽ trả về chính đối tượng Trình tải.Trong các phiên bản Python trước 3.3, __loader__ không được thiết lập bởi bộ máy nhập khẩu tích hợp.Thay vào đó, thuộc tính này chỉ có sẵn trên các mô -đun được nhập bằng trình tải tùy chỉnh.an attribute that is set on an imported module by its loader. Accessing it should return the loader object itself. In Python versions before 3.3, __loader__ was not set by the built-in import machinery. Instead, this attribute was only available on modules that were imported using a custom loader.an attribute that is set on an imported module by its loader. Accessing it should return the loader object itself. In Python versions before 3.3, __loader__ was not set by the built-in import machinery. Instead, this attribute was only available on modules that were imported using a custom loader.