在python中从不同文件夹导入相似名称的文件

问题描述 投票:0回答:1

我有两个同名的不同文件,我正在为其编写单元测试。文件结构如下:

Proj\
 Task\
  Folder1\
   needtotest.py
  Folder2\
   needtotest.py

我的测试文件的文件夹结构:

Proj\test\test.py

在我的设置配置中,我的 PYTHONPATH 设置为:

PYTHONPATH=Proj\Task\Folder2\needtotest.py Proj\Task\Folder1\needtotest.py

每当我在 test.py 中导入 needtotest 模块时,它都会从文件夹 2 中获取模块(由于我的 pythonpath,这很有意义)。但由于其他问题,我无法更改 PYTHONPATH 或文件名。有没有办法从Folder1导入needtotest.py?

我已经尝试过

sys.append 
它不起作用。我尝试的另一种方法是:
import Proj.Task.Folder2.needtotest
也因语法错误而失败

python python-3.x pytest
1个回答
0
投票

从不同文件夹导入相似文件名的第二个选项要容易得多。但是,它也依赖于您正在处理的当前目录。大多数时候,当我们指定当前工作空间看不到的路径时,总是会发生语法错误。

例如,这是您的目录

Proj\
 Task\
  Folder1\
   needtotest.py
  Folder2\
   needtotest.py

要检查您当前所在的位置,您只需在终端中执行以下操作:

pwd

假设它输出为

Proj/Task
。这意味着您当前位于任务文件夹中,它同时看到了Folder1 和Folder2。要导入同名文件,您可以简单地执行以下操作:

# first way
from Folder1 import needtotest as test1
from Folder2 import needtotest as test2

# to utilize function from Folder1 (the test case you've written)
test1.your_test_function()

# to utilize function from Folder2 (the test case you've written)
test2.your_test_function()

如果仍然导致语法错误,您可以重新考虑当前工作目录并将工作目录更改为与访问文件相关的位置。

© www.soinside.com 2019 - 2024. All rights reserved.