无法从刚刚创建的文件中导入函数

时间:2018-09-11 17:02:01

标签: python python-3.x

在我的代码中,我检查文件是否存在,如果不存在,则创建文件,如下所示:

dir = (os.listdir('.'))
if 'my_functions.py' not in dir:
    fdf = open('my_functions.py', 'w')
    fdf.write("""my function code here """)

print(os.listdir('.'))
from my_functions import function1, function2

这不起作用,我收到一条错误消息,提示“ ImportError:无法导入名称'function1'”

这是为什么? print语句将打印目录中的所有文件,并且我可以看到my_functions.py在目录中。如果在那里,为什么不能导入功能?

我知道my_functions.py代码本身不是问题,因为如果我再次运行它(在首次创建my_functions.py之后),那么它将正常工作。

2 个答案:

答案 0 :(得分:2)

您正在创建的文件称为'file_differ_functions.py',而不是'my_functions.py'

另外,使用fdf.close()打开文件后也应关闭文件

答案 1 :(得分:1)

可能是因为您尚未关闭文件,请在fdf.close()之后执行fdf.write,看看是否可以解决该问题。

或者甚至更好地使用以下格式:

with open('my_functions.py', 'w') as fdf:
    fdf.write("""my function code here """)

您不必关闭它