簡體   English   中英

用絕對路徑導入python

[英]python import with absolute path

我具有以下文件夾結構,並希望找到一種導入python模塊的好方法。

project1/test/benchmark/benchmark_project1.py

#in benchmark_project1.py
from project1.test.benchmark import *

我的問題是如何擺脫project1 ,因為它可能被重命名為“ project2 ”或其他東西。 我想使用絕對路徑import ,但不知道實現此目標的好方法。

您可以使用os.chdir()在import語句之前更改目錄,然后再將其更改回來。 這將允許您指定要導入的精確文件。 您可以使用os.listdir()來獲取目錄中所有文件的列表,然后對它們進行索引。 使用循環將獲取文件夾中的所有模塊,或者根據某種模式提供正確的索引將為您提供特定的索引。 glob模塊允許您使用正則表達式選擇文件。

import os

cwd = os.getcwd()

new_dir = 'project1/test/benchmark/'
list_dir = os.listdir(new_dir) # Find all matching

os.chdir(new_dir)
for i in range(len(list_dir): # Import all of them (or index them in some way)
    module = list_dir[i][0:-3] # Filter off the '.py' file extension
    from module import *
os.chdir(cwd)

或者,您可以將位置添加到路徑中,而不用更改目錄。 請查看此問題以獲取更多資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM