小编Hai*_* Vu的帖子

如何自定义Python日志记录的时间格式?

我是Python的日志包的新手,并计划将它用于我的项目.我想根据自己的口味定制时间格式.这是我从教程中复制的一个简短代码:

import logging

# create logger
logger = logging.getLogger("logging_tryout2")
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")
Run Code Online (Sandbox Code Playgroud)

这是输出:

2010-07-10 10:46:28,811;DEBUG;debug message
2010-07-10 10:46:28,812;INFO;info message
2010-07-10 10:46:28,812;WARNING;warn message
2010-07-10 10:46:28,812;ERROR;error message
2010-07-10 10:46:28,813;CRITICAL;critical message
Run Code Online (Sandbox Code Playgroud)

我想将时间格式缩短为:' 2010-07-10 10:46:28',删除mili-second后缀.我查看了Formatter.formatTime,但很困惑.感谢您帮助我实现目标.谢谢.

python formatting logging datetime

171
推荐指数
5
解决办法
10万
查看次数

如何静默/安静HTTPServer和BasicHTTPRequestHandler的stderr输出?

我正在编写一个简单的http服务器作为我项目的一部分.下面是我的脚本的框架:

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler

class MyHanlder(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write('<html><body><p>OK</p></body></html>')

httpd = HTTPServer(('', 8001), MyHanlder)
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

我的问题:每次客户端连接到我的服务器时,如何抑制脚本生成的stderr日志输出?

我已经查看了HTTPServer类到它的父级,但是无法找到任何标志或函数调用来实现这一点.我还查看了BaseHTTPRequestHandler类,但找不到线索.我相信一定有办法.如果你这样做,请与我和其他人分享; 我感谢您的努力.

python basehttpserver httpserver

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

安装anaconda后 - 找不到命令:jupyter

我已经在我的MAC笔记本电脑上安装了anaconda,并试图运行jupyter笔记本来安装它,但我得到错误jupyter命令未找到.

python anaconda jupyter-notebook

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

cElementtree和ElementTree有什么区别?

我知道一点dom,想了解ElementTree.Python 2.6有一个较旧的ElementTree实现,但仍然可用.但是,看起来它有两个不同的类:xml.etree.ElementTree和xml.etree.cElementTree.有人请你这么善意以他们的分歧来启发我吗?谢谢.

python xml

15
推荐指数
5
解决办法
9219
查看次数

Android NDK是否有sleep()函数?

在Android NDK下,是否有睡眠()函数睡眠X毫秒,但不阻止事件循环?

我们正在编写API测试,以便在Mac,Windows和Android上运行.到目前为止,我们已经为Mac和Windows实现了某种类型的sleep(),但我们都是Android NDK的新手,需要一些帮助.先感谢您.

c++ android android-ndk

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

没有多处理打印输出(Spyder)

我最近开始深入研究多处理,因为我相信我的代码可以很容易地并行化.但是,在完成教程后,我遇到了一个问题:在池中分发的函数似乎没有打印.

这是罪魁祸首:

__spec__ = None # This line is required for Spyder and not part of the actual example

from multiprocessing import Process
import os

def info(title):
    print(title)
    print('module name:', __name__)
    print('parent process:', os.getppid())
    print('process id:', os.getpid())

def f(name):
    info('function f')
    print('hello', name)

if __name__ == '__main__':
    info('main line')
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()
Run Code Online (Sandbox Code Playgroud)

我收到的输出如下:

main line 
module name: __main__ 
parent process: 10812 
process id: 11348*
Run Code Online (Sandbox Code Playgroud)

现在很明显,控制台似乎只打印信息函数,而不是f函数的任何输出(使用multiprocessing.Process).我在网上找到的其他例子遇到了类似的问题:使用多处理时计算完成并正确返回,但打印机从未显示在控制台中.

有人知道为什么,以及如何解决这个问题?

在一个可能相关的说明中,我在Spyder 3.2.4中使用Python 3.6.Spyder似乎有一些怪癖,因为代码中的第一行已经是允许多处理工作所需的解决方法,我在这里已经讨论过这个问题.这里提到一个类似的,未解决的问题. …

multiprocessing python-3.x spyder

10
推荐指数
1
解决办法
6159
查看次数

在 Azure 应用服务上部署 FastAPI 和 uvicorn

我想将一个简单的 FastAPI/uvicorn 部署到 Azure 应用程序服务上。

每次部署时,一切似乎都运行顺利,但当我输入 Web 应用程序的 URL 时,我会收到以下错误消息:

“错误信息

在我的本地机器上,uvicorn 工作正常。在我的网络服务上,我运行 python 3.7 和 fastapi 0.62.0。

每次部署时,我都会启动一个名为startup.sh的文档,其中仅包含一行代码:

python -m uvicorn main:app --host 0.0.0.0 --port 80

非常感谢帮助!

deployment azure azure-web-app-service fastapi uvicorn

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

从python中的列表构造二叉树的最佳方法

假设每个节点都有self.left,self.rightself.data,从每个级别给出数字的列表中构造二叉树而不是二叉搜索树(BST)的最佳方法是什么。其中第一个数字是级别 1,接下来的 2 是级别 2,接下来的 4 是级别 3,依此类推。例如

input: [3,5,2,1,4,6,7,8,9,10,11,12,13,14] 
Run Code Online (Sandbox Code Playgroud)

构造一棵树:

          3
       /     \
     5         2
    /\         /\
   1  4       6   7
  /\  /\     /\   /\
 8 9 10 11 12 13 14
Run Code Online (Sandbox Code Playgroud)

一种解决方案是:

for node at index i,
left child index = 2i+1
right child index = 2i+2
Run Code Online (Sandbox Code Playgroud)

想知道是否还有其他可能的方法

python tree

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

Doxygen-如何记录具有非标准扩展名 (.INI) 的文件

我有一个简单的问题:如何记录 .INI 文件?

我有一个具有以下布局的 C++ 项目:

readme.txt
src
    main.cpp
data
    simple.ini
Run Code Online (Sandbox Code Playgroud)

我从 readme.txt 和 main.cpp 生成文档没有问题,但是 simple.ini 中的文档根本没有显示在 html 输出中。我已修复 Doxygen 文件以包含以下内容:

INPUT = . src data
FILE_PATTERNS = *.cpp *.txt *.ini
Run Code Online (Sandbox Code Playgroud)

那没有帮助。我还明确指定了 simple.ini:

INPUT = readme.txt data/simple.ini src
Run Code Online (Sandbox Code Playgroud)

但它也不起作用。在 simple.ini 中,我使用 ';' 评论:

; @file simple.ini
; This file will do blah blah blah
[section1]
key1 = foo
key2 = bar
...
Run Code Online (Sandbox Code Playgroud)

我也尝试使用 '#' 作为注释字符,但它也不起作用。如何让 doxygen 处理 simple.ini?

doxygen

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

如何为 Sphinx 自定义模块名称

就狮身人面像而言,我是新手。我的项目结构如下:

  • argparse_actions/
    • argparse_actions/
      • __init__.py
      • folder_actions.py
      • ip_actions.py
    • 文档/
      • _建造/
      • index.rst ==> 这是起点、主页或根文档。
      • 和更多...

__init__.py 看起来像这样:

from folder_actions import *
from ip_actions import *
Run Code Online (Sandbox Code Playgroud)

folder_actions.py看起来像这样:

'''
Folder Actions
==============

This module implements some reusable custom actions.

.. autoclass:: FolderExistsAction
.. autoclass:: FolderCreateAction
   :members:

'''

# The rest of the code
Run Code Online (Sandbox Code Playgroud)

生成的 HTML 文档看起来不错,除了这部分:

folder_actionsFolderCreateAction ( ... )

我知道folder_actions模块前缀是正确的,但我想将其更改为使用包名称,如下所示:

argparse_actionsFolderCreateAction ( ... )

有没有办法让我实现这一目标?

更新

  • 根文件在 doc/index.rst
  • 如果我将文档字符串从folder_actions.pyto移动__init__.py,则文档将如下所示:

    class __init__.FolderCreateAction( …
    Run Code Online (Sandbox Code Playgroud)

python python-sphinx

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