【发布时间】:2017-11-14 02:22:23
【问题描述】:
有一个高度赞成的 StackOverflow thread 表示在另一个 Python 文件中运行 Python 文件的最佳方法是将 import 它们作为一个模块。
这对我来说很有效,只是在至少有数百个(如果不是数千个)要运行的文件的情况下,我无法以编程方式执行它。
所有文件都在同一个目录中,并共享一个共同的命名约定。我试着像这样运行它们:
import glob, os
for filename in glob.glob("*_decomp*"):
import filename
但这会引发错误:
Traceback (most recent call last): File "C:\Python35\lib\site-packages\IPython\core\interactiveshell.py", line3066,在 run_code 中 执行(code_obj,self.user_global_ns,self.user_ns) 文件“”,第 4 行,在 导入文件名 文件“C:\Program Files\JetBrains\PyCharm Community Edition 2017.1.3\helpers\pydev_pydev_bundle\pydev_import_hook.py”,第 21 行,在 do_import 模块 = self._system_import(名称,*args,**kwargs) ImportError:没有名为“文件名”的模块
变量 filename 在 IDE 中也用红色下划线,这否定了我最初的假设,即只需删除 .py 文件扩展名。
这很适合打印:
import glob, os
for filename in glob.glob("*_decomp*"):
# import filename
print(filename)
所以我不太确定前面的语句有什么问题或如何解决它。我也可以手动输入import,效果很好,但我还是想以编程方式完成,这样我就不必输入所有文件名,而且文件名会随着时间而改变。
最后,我还尝试使用[:-3](即filename[:-3])删除文件扩展名,但同样只适用于print(),不适用于import。
【问题讨论】:
标签: python-3.x