小编Bla*_*rdi的帖子

在处理之前从rrule中排除日历假日

我正在使用python-dateutil包中的rrule方法.我想创建一个可以忽略假日日历中的日期的规则.我知道exdate()方法,但这似乎只是从生成的输出列表中过滤日期.

from dateutil.rrule import *
from datetime import datetime

set = rruleset()
set.rrule(rrule(MONTHLY, count=4, bysetpos=-1, byweekday=(MO, TU, WE, TH, FR), dtstart=datetime(2013,1,1)))
list(set)
# outputs 4 dates without an exdate() call
> [datetime.datetime(2013, 1, 31, 0, 0), datetime.datetime(2013, 2, 28, 0, 0), datetime.datetime(2013, 3, 29, 0, 0), datetime.datetime(2013, 4, 30, 0, 0)]

set.exdate(datetime.datetime(2013, 2, 28, 0, 0))
list(set)
# only outputs 3 dates, ignoring the date provided in exdate()
> [datetime.datetime(2013, 1, 31, 0, 0), datetime.datetime(2013, 3, …
Run Code Online (Sandbox Code Playgroud)

python rrule python-dateutil

7
推荐指数
0
解决办法
984
查看次数

python多处理,管理器启动进程生成循环

我有一个简单的python多处理脚本,它设置一个工作池,试图将工作输出附加到Manager列表.该脚本有3个调用堆栈: - 主调用f1,它产生几个调用另一个函数g1的工作进程.当一个人试图调试脚本时(偶然在Windows 7/64 bit/VS 2010/PyTools上),脚本会运行到嵌套的进程创建循环中,从而产生无数个进程.谁能确定原因?我确定我错过了很简单的事情.这是有问题的代码: -

import multiprocessing
import logging

manager = multiprocessing.Manager()
results = manager.list()

def g1(x):
    y = x*x
    print "processing: y = %s" % y
    results.append(y)

def f1():
    logger = multiprocessing.log_to_stderr()
    logger.setLevel(multiprocessing.SUBDEBUG)

    pool = multiprocessing.Pool(processes=4)
    for (i) in range(0,15):
        pool.apply_async(g1, [i])
    pool.close()
    pool.join()

def main():
    f1()

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

PS:尝试添加multiprocessing.freeze_support()到主要无济于事.

python pool process multiprocessing python-multiprocessing

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