我在运行自己写的代码时程序open_file()函数处出现错误,如图1所示。

我一下子没有搞明白问题为什么会发生。
我首先得确定open_file()函数本身是能够使用的,所以,写了一个简单的程序
tuple_string (0, '1d', num)
open_file('d:/资源/standard' + num +'.txt', 'append', FileHandle)
close_file(FileHandle)
结果表明,open_file()函数没有问题。
接着,我把代码中“资源”二字改成“资”,结果程序出现类似的错误。
于是我判定,之所以出现错误是因为文件名中的路径并不存在。因为我电脑中是有“资源”文件夹的,没有“资”文件夹,所以出现这种错误。然而,我检查发现,原来的代码中文件名的路径是并没有问题的!
我猜测,这是因为原来文件名所在的路径层数过多造成的。部分证明是,我把文件名的路径设置的很短的话就没有发生程序问题。
所以,这里也许还有一个问题是,halcon对于文件名的路径层数可能有一个最大值,这个问题就留待感兴趣的人去研究了。
总结:open_file()函数会出错可能有以下几种可能:
1,文件名路径不存在;
2,文件名路径层数过多;
3,文件名写到系统盘中去了(这个情况是我以前遇到的)