小编bit*_*man的帖子

使用doxygen记录Python包

http://www.doxygen.nl/manual/docblocks.html中的"Python中的特殊文档块" 给出了使用Python进行doxygen使用的示例.

在doxygen生成的相应HTML文档中(Web中的示例输出),如果单击包名称,则会显示与包关联的所有描述,类和函数.

如果我从doxygen文档中获取相同的示例脚本,使用"doxygen -g config"创建配置文件并使用"doxygen config"生成html,则输出不同.如果单击包名称,则仅显示包描述,但不显示类和函数.

我需要在配置文件或某些xml方案中进行更改,以便在包文档下包含类和函数.

编辑1:上面网页上的示例:

## @package pyexample
#  Documentation for this module.
#
#  More details.

## Documentation for a function.
#
#  More details.
def func():
   pass

## Documentation for a class.
#
#  More details.
class PyClass:

    ## The constructor.
    def __init__(self):
        self._memVar = 0;

    ## Documentation for a method.
    #  @param self The object pointer.
    def PyMethod(self):
        pass

    ## A class variable.
    classVar = 0;

    ## @var _memVar
    #  a member …
Run Code Online (Sandbox Code Playgroud)

python doxygen package

9
推荐指数
1
解决办法
1万
查看次数

使用带有python多处理的列表

任何人都可以帮助我在多个python进程之间共享列表.问题是让self.ID_List和self.mps_in_process在以下代码中工作.

import time, random
from multiprocessing import Process #, Manager, Array, Queue

class MP_Stuff():
    def __init__(self, parent, id):
        time.sleep(1 + random.random()*10) # simulate data processing
        parent.killMP(id)

class ParamHandler():
    def doFirstMP(self, IDs):
        self.mps_in_process = []
        self.ID_List = IDs
        id = self.ID_List.pop(0)
        p = Process(target=MP_Stuff, args=(self, id))
        self.mps_in_process.append(id)
        p.start()

    def doMP(self):
        for tmp in range(3): # nr of concurrent processes
            if len(self.ID_List) > 0:
                id = self.ID_List.pop(0)
                p = Process(target=MP_Stuff, args=(self, id))
                self.mps_in_process.append(id)
                p.start()

    def killMP(self, kill_id):
        self.mps_in_process.remove(kill_id)
        self.doMP()

if __name__ == '__main__': …
Run Code Online (Sandbox Code Playgroud)

python list multiprocessing

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

python csv列表分隔符基于区域设置

如何使用Python检测用户机器中的列表分隔符?

需要在用户计算机上创建CSV文件,并且必须自动检测列表分隔符(以便excel可以读取CSV文件).

我发现Excel从"区域选项 - >数字 - >列表分隔符"中获取CSV元素分隔符.Python中的locale模块用于检测文化设置,但它(locale.localeconv)不包含列表分隔符.用dialect ='excel'打开CSV编写器没有帮助.知道如何获得正确的分隔符吗?

编辑

以下代码似乎有效(但不能接受任何upvotes,因为解决方案不是我的)

import locale

langlocale = locale.getdefaultlocale()[0]
locale.setlocale(locale.LC_ALL, langlocale)
dp = locale.localeconv()['decimal_point']
delimiter = ','
if dp == ',':
    delimiter = ';'
Run Code Online (Sandbox Code Playgroud)

python csv

7
推荐指数
2
解决办法
3781
查看次数

用子进程调用的程序-记录器消息不打印?

如果通过子进程调用该程序,则从程序的记录器获取消息时会出现问题。

这是程序BooFoo.py,它使用记录器将消息打印到文件和控制台窗口:

import logging
LOG_FILENAME = 'example.log'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)
logger = logging.getLogger('main')
logger.addHandler(logging.StreamHandler())
print 'print foo'
logger.info('logger boo')
Run Code Online (Sandbox Code Playgroud)

这是程序CallBooFoo.py:

import subprocess
proc = subprocess.Popen(['python BooFoo.py'], bufsize=512, stdin = None, 
     stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True)
proc_out, proc_err = proc.communicate()
print proc_out
Run Code Online (Sandbox Code Playgroud)

CallBooFoo.py不会打印“ logger boo”。任何想法如何解决这个问题?使用os.system是可行的,但是由于某些其他原因,这不是解决方案。

python logging subprocess

5
推荐指数
1
解决办法
1672
查看次数

标签 统计

python ×4

csv ×1

doxygen ×1

list ×1

logging ×1

multiprocessing ×1

package ×1

subprocess ×1