小编sas*_*hab的帖子

Python子进程并行

我希望能够并行运行多个进程,并且能够随时使用stdout.我该怎么办?我是否需要为每个subprocess.Popen()呼叫运行线程,什么?

python subprocess

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

Jinja2逃脱所有HTML但img,b等

Jinja2的自动转义所有的HTML标签,但我想摆脱不了一些标签(比如img,b和其他一些).我该怎么做?

python escaping jinja2 flask

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

Python大迭代次数失败

我使用多处理模块在Python中编写了简单的monte-carloπ计算程序.它工作正常,但是当我为每个工作者传递1E + 10次迭代时,会出现一些问题,结果是错误的.我无法理解问题是什么,因为1E + 9迭代的一切都很好!

import sys
from multiprocessing import Pool
from random import random


def calculate_pi(iters):
    """ Worker function """

    points = 0  # points inside circle

    for i in iters:
        x = random()
        y = random()

        if x ** 2 + y ** 2 <= 1:
            points += 1

    return points


if __name__ == "__main__":

    if len(sys.argv) != 3:
        print "Usage: python pi.py workers_number iterations_per_worker"
        exit()

    procs = int(sys.argv[1])
    iters = float(sys.argv[2])  # 1E+8 is cool …
Run Code Online (Sandbox Code Playgroud)

python iteration parallel-processing pi montecarlo

13
推荐指数
1
解决办法
1182
查看次数

Python代码jailing

我有一堆python项目,里面有不受信任的WSGI-apps.我需要模拟和安全地运行它们.所以我需要限制目录访问,python模块使用以及CPU和内存的限制.

我考虑两种方法:

  1. 从定义的文件中通过imp-module WSGI-object导入,并使用pysandbox运行它.现在我SandboxError: Read only object做的时候:

    self.config  = SandboxConfig('stdout')
    self.sandbox = Sandbox(self.config)
    self.s = imp.get_suffixes()
    wsgi_obj = imp.load_module("run", open(path+"/run.py", "r"), path, self.s[2]).app
    …
    return self.sandbox.call(wsgi_obj, environ, start_response)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 修改Python解释器,排除具有潜在风险的模块,在并行进程中运行,通过ZMQ/Unix套接字进行通信.我甚至不知道从哪里开始.

你能推荐什么?

python virtualization pysandbox

8
推荐指数
1
解决办法
2014
查看次数

在mac上进行C++分析

我在mac上编写仅限STL的C++应用程序(OS X Lion/XCode 4.1).我需要回答一个简单的问题:必须优化哪些代码部分?Gprof空出输出,XCode的仪器没有帮助.我需要使用哪种工具?

c++ macos profiler xcode profiling

7
推荐指数
1
解决办法
6406
查看次数

Cocoa开关专注于应用程序,然后将其切换回来

我想创建OS X应用程序,它显示并聚焦系统范围的热键,然后,使用相同的热键,它应该消失并切换回焦点.就像阿尔弗雷德那样.

问题是我无法专注于以前使用过的应用程序.通过回顾我的意思是我不能继续键入以前的应用程序.

这是我的热键处理程序:

OSStatus OnHotKeyEvent(EventHandlerCallRef nextHandler,EventRef theEvent, void *userData)
{
    AppDelegate *me = (__bridge AppDelegate*) userData;

    EventHotKeyID hkCom;

    GetEventParameter(theEvent, kEventParamDirectObject, typeEventHotKeyID, NULL, sizeof(hkCom), NULL, &hkCom);

    if([[me window] isVisible]) {
        [[NSApplication sharedApplication] activateIgnoringOtherApps:NO];
        [[me window] orderOut:NULL];
    }
    else {
        [[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
        [[me window] makeKeyAndOrderFront:nil];

    }

    return noErr;
}
Run Code Online (Sandbox Code Playgroud)

macos cocoa macos-carbon objective-c

7
推荐指数
1
解决办法
2804
查看次数

在线程中计算Pi

我有两种使用蒙特卡罗方法计算pi的实现:有线和无线程.没有线程工作的实现很好,但带线程的方法在准确性和性能方面存在问题.这是代码:

没有线程:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{
    srand(time(NULL));

    unsigned long N = 0, Nin = 0;
    float x,y;

    while(N < 2E+9)
    {
        x = rand()/((float)RAND_MAX + 1.0)*10.0 - 5.0;
        y = rand()/((float)RAND_MAX + 1.0)*10.0 - 5.0;

        if(x*x + y*y < 25.0) Nin += 1;
        N++;
    }
    long double pi = 4.0 * (long double)Nin / (long double)N;

    printf("\tPi1: %.20Lf\n\t%lu %lu\n", pi, Nin, N);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

并有线程:

#include <stdio.h>
#include <stdlib.h>
#include …
Run Code Online (Sandbox Code Playgroud)

c pi pthreads

6
推荐指数
1
解决办法
2322
查看次数

烧瓶长的例程

我必须在我的Flask应用程序中做一些长时间的工作.我想做异步.刚开始工作,然后从javascript检查状态.

我正在尝试做类似的事情:

@app.route('/sync')
def sync():
    p = Process(target=routine, args=('abc',))
    p.start()

    return "Working..."
Run Code Online (Sandbox Code Playgroud)

但它创造了已经不复存在的枪支工人.

怎么解决?我应该使用像芹菜这样的东西吗?

python long-running-processes flask gunicorn

6
推荐指数
1
解决办法
4134
查看次数

实现T9文本预测

我在内存中有一个T9字典(trie/hash_map).该词典包含词级对,因此当从词典中选取一个词时,其等级增加,并且词等级对在词列表中上升.

假设有一种方法可以从字典中选择一个单词.该方法也做了一些单词评级例程.

在输入中,我有一串数字(1-9,'*'来改变单词和''),这些是在电话上按下的.

问题:

  1. 有没有算法快速解析字符串?
  2. 哪个数据结构会好?

UPD:

完整问题文本(问题D)

Hash_map实现

Trie实施

c++ trie string-parsing data-structures t9

4
推荐指数
1
解决办法
6644
查看次数

python中的Lambda函数比较

在python中,您无法直接比较lambda表达式创建的函数:

>>> (lambda x: x+2) == (lambda x: x+2)
False
Run Code Online (Sandbox Code Playgroud)

我做了一个例程来散列反汇编.

import sys
import dis
import hashlib
import contextlib


def get_lambda_hash(l, hasher=lambda x: hashlib.sha256(x).hexdigest()):
    @contextlib.contextmanager
    def capture():
        from cStringIO import StringIO
        oldout, olderr = sys.stdout, sys.stderr
        try:
            out=[StringIO(), StringIO()]
            sys.stdout, sys.stderr = out
            yield out
        finally:
            sys.stdout, sys.stderr = oldout, olderr
            out[0] = out[0].getvalue()
            out[1] = out[1].getvalue()

    with capture() as out:
        dis.dis(l)

    return hasher(out[0])
Run Code Online (Sandbox Code Playgroud)

用法是:

>>>> get_lambda_hash(lambda x: x+2) == get_lambda_hash(lambda x: x+1)
False

>>>> get_lambda_hash(lambda x: x+2) == get_lambda_hash(lambda …
Run Code Online (Sandbox Code Playgroud)

python lambda python-internals

3
推荐指数
1
解决办法
1779
查看次数

Python嵌套列表

可能重复:
Python列表追加行为

为什么这段代码:

x = [[]]*3
x[0].append('a')
x[1].append('b')
x[2].append('c')
x[0]=['d']

print x
Run Code Online (Sandbox Code Playgroud)

打印[['d'],['a','b','c'],['a','b','c']]?

python nested-lists

-1
推荐指数
1
解决办法
3580
查看次数