【问题标题】:Importing files from different dir从不同的目录导入文件
【发布时间】:2018-03-21 15:18:50
【问题描述】:

我正在做一个项目,我的 python 文件(位于 D:)将打开“提交”文件夹 (in C:\user\desktop\)。现在,submissions 文件夹有学生的子文件夹,比如 student1、student2 等。现在,每个学生提交同一个文件,比如 my_math.py(具有 add、sub、mul、. 功能)。

所以,我的程序 (test_math.py) 一个接一个地测试他们提交的每一个。

addr = r'C:\users\desktop\submissions\student1'
import importlib
module = importlib.import_module('test_math', package = addr)

这似乎不起作用。我在提交文件夹中也有一个__init__.py。我不知道问题出在哪里!我正在使用python 3.6.3

【问题讨论】:

  • 您应该查看 os 模块,了解与文件夹/文件导航相关的所有内容,尤其是在您的 os.walk 中:tutorialspoint.com/python/os_walk.htm
  • 我可以使用os.listdir 获取该位置的所有文件夹。但我想要的是一个接一个地动态导入所有那些相同的文件

标签: python-3.x python-importlib import-module


【解决方案1】:

有两种方法:

一,从命令行:https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH。我认为您应该为每个学生启动一个新的 Python 解释器。

或者只是在python内部,在导入之前,你操作sys.pathhttps://docs.python.org/3/library/sys.html#sys.path

但是当您的学生知道您直接从控制台执行代码时,他们会滥用系统(就像他们一直做的那样)。

【讨论】:

  • 不能用importlib.import_moduie从其他目录导入文件吗?
  • @SreekarMouli:是的,但没关系。 import_moduleimport 的一种,但您不能指定路径。如您所见docs.python.org/3/library/importlib.html#functions,您没有按照应有的方式使用它。您的第一个参数不是相对的,第二个参数不应该是路径。
猜你喜欢
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多