我一直在做一个项目,创建自己的.py文件来存储该方法的处理程序,我一直在尝试找出如何将Python文件存储在文件夹中并打开它们。下面是我用来创建文件(如果文件不存在)的代码,然后导入文件:
if os.path.isfile("Btn"+ str(self.ButtonSet[self.IntBtnID].IntPID) +".py") == False:
TestPy = open("Btn"+ str(self.ButtonSet[self.IntBtnID].IntPID) +".py","w+")
try:
TestPy.write(StrHandler)
except Exception as Error:
print(Error)
TestPy.close()
self.ButtonSet[self.IntBtnID].ImpHandler = __import__("Btn" + str(self.IntBtnID))
self.IntBtnID += 1
当我改变这行时:
self.ButtonSet[self.IntBtnID].ImpHandler = __import__("Btn" + str(self.IntBtnID))
对此:
self.ButtonSet[self.IntBtnID].ImpHandler = __import__("Buttons\\Btn" + str(self.IntBtnID))
找不到填充,结果抛出错误,因为它在文件夹中找不到文件。你知道吗
你知道为什么它不起作用吗?我只是不知道如何避开这个问题:/
我的问题是,当.py存储在文件夹中时,如何打开它?你知道吗
__import__()
函数的第一个参数是模块的名称,而不是模块的路径。因此,我认为您需要使用:您可能还需要在
Buttons
文件夹中放置一个空的__init__.py
文件,以指示它是一个模块包。你知道吗您的代码中有一些不规则的东西可能是导致问题的原因。首先,通常最好使用^{} 中的函数来操纵文件的路径。从反斜杠的用法来看,似乎您正在Windows上工作,但是
os.path
模块确保了所有平台上行为的一致性。你知道吗还有^{} ,通常建议在
__import__
上使用。此外,如果要在程序的生命周期内多次加载生成的模块,则必须使用imp.reload
显式地进行加载。你知道吗最后一个提示:我会计算出模块路径,以避免在多个地方更改它。你知道吗
导入文件时不能引用路径目录。相反,您希望将目录添加到
path
,然后导入模块的名称。你知道吗有关详细信息,请参见this so question。你知道吗
相关问题 更多 >
编程相关推荐