【发布时间】:2019-09-16 12:37:04
【问题描述】:
我想从子文件夹内的文件中导入函数。 文件名因前面的代码而异,这就是我得到“文件”变量的原因。
我想出了适用于 Windows 和 Linux 的不同代码。
文件夹布局是这样的:
#ls project/
file.py subfolder
#ls project/subfolder/
subfile.py
文件.py
import os
os.chdir('subfolder')
file = 'subfile'
if os.name == 'nt': #for windows
exec('from ' + file + ' import *')
else:
exec('from subfolder.' + file + ' import *')
print(subfunction())
子文件.py
def subfunction():
return 1
这种不同的行为对我来说似乎很奇怪,因为它在 2 个不同的操作系统上是相同的编程语言。 有人有比这更好的代码示例,或者可以详细说明为什么会这样吗?
注意:在 Windows 上,我从 Anaconda 获得了 Python 3.6.5 版,在 Linux 上获得了 Python 3.7.4
【问题讨论】:
标签: python linux windows import