在我的代码中,我检查文件是否存在,如果不存在,则创建文件,如下所示:
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之后),那么它将正常工作。
答案 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 """)
您不必关闭它