os python 库在 blender python api 中的实现

implementation of os python library in blender python api

我必须从 Blender python 脚本创建并写入一个文本文件。文档 here 说使用 fdopen() 函数可以在代码中将 txt 文件作为流打开。

不过,fdopen()在blender中pythonapi好像没有实现。相反,它被注释为#supply fdopen()。你实际上可以做 fdopen() 必须用另一个函数 open() 做的事情,它是 python api 的内置函数(似乎不属于 os ).

此外,如果我在搅拌机中使用 os.open(),它 returns 是一个整数而不是文件。这是否意味着 Blender os 模块实现与 'native' python os 不同?

我的意思是,这个库是 're-written' 由 blender 开发人员用 C 编写的?我没有计算机科学背景,所以如果我的假设是正确的,我无法真正理解为什么会这样。我的理解是 BDFL 已经用 C 编写了 os 模块,它现在应该可以完美地适用于任何地方的每个人。为什么不简单地把它嵌入到搅拌机的 python api 中呢?谁能给我详细解释一下?

Blender 使用默认的 python os 模块。 os.open returns a file descriptor (int); builtin global function open returns 文件对象 - 这就是您应该用于常规文件访问的对象。