小编dmo*_*ock的帖子

boost :: python:Python列表到std :: vector

最后我可以使用[]运算符在python中使用std :: vector.诀窍是简单地在boost C++包装器中提供一个处理内部向量内容的容器:

#include <boost/python.hpp>
#include <vector>
class world
{
    std::vector<double> myvec;

    void add(double n)
    {
        this->myvec.push_back(n);
    }

    std::vector<double> show()
    {
     return this->myvec;
    }
};

BOOST_PYTHON_MODULE(hello)
{
    class_<std::vector<double> >("double_vector")
        .def(vector_indexing_suite<std::vector<double> >())
    ;

    class_<World>("World")
     .def("show", &World::show)
        .def("add", &World::add)
    ;
 }
Run Code Online (Sandbox Code Playgroud)

另一个挑战是:如何将python列表转换为std :: vectors?我试图添加一个c ++类,期望std :: vector作为参数,并添加了相应的包装代码:

#include <boost/python.hpp>
#include <vector>
class world
{
    std::vector<double> myvec;

    void add(double n)
    {
        this->myvec.push_back(n);
    }

    void massadd(std::vector<double> ns)
    {
        // Append ns to this->myvec
    }

    std::vector<double> show()
    {
     return this->myvec;
    }
};

BOOST_PYTHON_MODULE(hello)
{ …
Run Code Online (Sandbox Code Playgroud)

python boost stdvector boost-python

27
推荐指数
2
解决办法
2万
查看次数

python中打开的文件太多了

我写了一种严重的文件密集型测试套件.过了一段时间(2小时)我得到了一个IOError: [Errno 24] Too many open files: '/tmp/tmpxsqYPm'.我仔细检查了所有文件句柄是否再次关闭它们.但错误仍然存​​在.

我试图弄清楚使用的允许文件描述符resource.RLIMIT_NOFILE的数量和当前打开的文件解析器的数量:

def get_open_fds():

    fds = []
    for fd in range(3,resource.RLIMIT_NOFILE):
            try:
                    flags = fcntl.fcntl(fd, fcntl.F_GETFD)
            except IOError:
                    continue

            fds.append(fd)

    return fds
Run Code Online (Sandbox Code Playgroud)

所以,如果我运行以下测试:

print get_open_fds()
for i in range(0,100):
    f = open("/tmp/test_%i" % i, "w")
    f.write("test")
    print get_open_fds()
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

[]
/tmp/test_0
[3]
/tmp/test_1
[4]
/tmp/test_2
[3]
/tmp/test_3
[4]
/tmp/test_4
[3]
/tmp/test_5
[4] ...
Run Code Online (Sandbox Code Playgroud)

这很奇怪,我预计会有越来越多的打开文件描述符.我的剧本是否正确?

我正在使用python的logger和subprocess.这可能是我的fd泄漏的原因吗?

谢谢,丹尼尔

python file-descriptor

23
推荐指数
3
解决办法
2万
查看次数

当前TCL脚本的完整路径

是否有可能获得当前正在执行的TCL脚本的完整路径?

在PHP中它将是: __FILE__

tcl

14
推荐指数
3
解决办法
2万
查看次数

Pygame显示位置

在创建pygame窗口后,我需要窗口位置:

window = pygame.display.set_mode((width, height), 0, 32)
pygame.init()
Run Code Online (Sandbox Code Playgroud)

默认情况下,窗口从0,0开始 - 但如果用户更改窗口位置,我还需要x,y.有任何想法吗?

python pygame

6
推荐指数
5
解决办法
8520
查看次数

标签 统计

python ×3

boost ×1

boost-python ×1

file-descriptor ×1

pygame ×1

stdvector ×1

tcl ×1