我正在用Cython弄湿我的脚.考虑我一个完全菜鸟.写入非常大的文件是代码中的主要瓶颈,因此我认为应该研究并行性,但是我找不到任何有用的东西来编写具有并行性的文件.
甚至可以使用
with nogil, parallel():
写入文件的声明?尝试编写字符串时出现编译错误:
Constructing Python tuple not allowed without gil
解决方法:
您不能在nogil块中使用任何Python函数或对象.如果要使用nogil进行文件IO,则必须使用C.blog post可能会为您提供帮助.具体来说,您可以从stdio导入常用的C函数.这些功能应该在nogil块中可用.以下是我上面链接到的博客文章:
from libc.stdio cimport *
cdef extern from "stdio.h":
FILE *fopen(const char *, const char *)
int fclose(FILE *)
ssize_t getline(char **, size_t *, FILE *)