gpt4 book ai didi

python - 从 windows 和 linux 中的子文件夹导入函数

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:19 25 4
gpt4 key购买 nike

我想从子文件夹中的文件中导入函数。文件名因之前的代码而异,这就是我获得"file"变量的原因。

我为 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

最佳答案

正确的方法就是 Linux 方法。我不确定为什么 windows 方法适合您。

os.chdir() 不应影响 python 查找要导入的模块的路径。 python 查找它们的路径位于 sys.path 中。

参见 sys.path并阅读更多信息 BrenBarn's answer .

关于python - 从 windows 和 linux 中的子文件夹导入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com