小编Tan*_*Woo的帖子

Unicode和Python中的`decode()`

>>> a = "?"  # chinese  
>>> b = unicode(a,"gb2312")  
>>> a.__class__   
<type 'str'>   
>>> b.__class__   
<type 'unicode'>  # b is unicode
>>> a
'\xce\xd2'
>>> b
u'\u6211' 

>>> c = u"?"
>>> c.__class__
<type 'unicode'>  # c is unicode
>>> c
u'\xce\xd2'
Run Code Online (Sandbox Code Playgroud)

b并且c都是unicode,但>>> b输出u'\u6211'>>> c输出u'\xce\xd2',为什么?

python unicode decode codec

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

为什么python线程中的代码示例中有空格

我正在阅读PyMOTW线程帖子

第一个例子:

import threading

def worker():
    """thread worker function"""
    print 'Worker'
    return

threads = []
for i in range(5):
    t = threading.Thread(target=worker)
    threads.append(t)
    t.start()
Run Code Online (Sandbox Code Playgroud)

我运行它,得到结果:

Worker
-Worker
Worker
-Worker
Worker
Run Code Online (Sandbox Code Playgroud)

-space,每一次的格式将是差异

但我不知道为什么会这样space

有时它会输出empty line,为什么?

python multithreading

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

为什么字体设置在gvim中不起作用?

在Fedora15中,我最初使用的是vim,我的~/.vimrc文件中定义了所有设置.我最近安装了vim-X11,现在已经过渡到gvim了.我定义了一个~/.gvimrc文件,用以下行来设置字体:

set guifont=Bitstream_Vera_Sans_Mono:h11:cANSI
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用.有两件奇怪的事情:

  1. 行号,颜色方案等其他设置正常,但字体设置不起作用.相反,我每次都需要在工具栏中设置它们来更改字体:"编辑 - >选择字体".

  2. 每次我选择"编辑 - >启动设置"时,它都会打开~/.vimrc文件而不是~/.gvimrc文件.

vim fonts

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

Python奇怪的多处理与变量名称

一个简单的例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import multiprocessing

class Klass(object):
    def __init__(self):
        print "Constructor ... %s" % multiprocessing.current_process().name

    def __del__(self):
        print "... Destructor %s" % multiprocessing.current_process().name


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

与错误做时运行current_process__del__:

Constructor ... MainProcess
Exception AttributeError: "'NoneType' object has no attribute 'current_process'" in <bound method Klass.__del__ of <__main__.Klass object at 0x7f5c34e52090>> ignored
Run Code Online (Sandbox Code Playgroud)

如果我更改变量名称:

als = Klass()
Run Code Online (Sandbox Code Playgroud)

它得到了正确的结果:

Constructor ... MainProcess
... Destructor MainProcess
Run Code Online (Sandbox Code Playgroud)

我尝试了很多变量名,有些没问题,有些错误.

为什么不同的实例名称会导致多处理模块为None __del__

python multiprocessing

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

在SocketServer中处理来自('127.0.0.1',xxxx)的请求时发生异常

我写了一个基于SimpleHTTPServer和SocketServer的预览函数,KeyboardInterrupt当我进入Ctrl-C停止服务器时我捕获异常:

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
import sys 
import SimpleHTTPServer 
import SocketServer

class Reuse_TCPServer(SocketServer.TCPServer):
    timeout = 1
    allow_reuse_address = True

def preview(port=8000):
    try:
        Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
        httpd = Reuse_TCPServer(("", port), Handler)
    except OSError as e:
        print("Could not listen on port {}".format(port))
        sys.exit(getattr(e, 'exitcode', 1))

    try:
        httpd.serve_forever()
    except (KeyboardInterrupt, SystemExit) as e:
        print("Shutting down server")
        httpd.socket.close()

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

但大多数情况下,如果我打开localhost:8000并立即(几秒钟)输入'Ctrl-C',它将首先显示该消息然后关闭套接字:

127.0.0.1 - - [16/Apr/2014 22:20:42] code 404, message File not found …
Run Code Online (Sandbox Code Playgroud)

python sockets http

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

是否有可以在django中存储标签的模型类型?

我想用Django写博客,博客中会有一些tags,但是我不知道哪种模型类型可以实现此功能。

是否有可以在django中存储标签的模型类型?

python django django-models

5
推荐指数
2
解决办法
2718
查看次数

如何在索引中提交特定文件?

例子:

» git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   a
    modified:   b

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   a
Run Code Online (Sandbox Code Playgroud)

如果我修改了一个名为 a 的文件,并将它的一部分添加到index.

我只想提交索引中的文件 a,既不包含 b 也不包含工作目录中的 a。

我使用的方式是使用git commit -p和进入n不阶段。或者git commit -p file选择我想要的部分。

但是如果文件 a 中的部分已经添加到索引中,有没有更好的方法来直接提交文件 a 只在索引部分?


补充:

我认为这可能是对 git …

git

5
推荐指数
2
解决办法
862
查看次数

python 多处理日志记录,根记录器在 Windows 中不同

我尝试使用多处理进行日志记录,发现在 Windows 下,我会在子进程中获得不同的根记录器,但在 Linux 下没问题。

测试代码:

主要.py:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import multiprocessing
from mymod import func

def m_func():
    server = multiprocessing.Process(target=func, args=())
    server.start()

logger = logging.getLogger()
#print 'in global main: ', logger

if __name__ == '__main__':
    print 'in main: ', logger
    m_func()
Run Code Online (Sandbox Code Playgroud)

mymod.py:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging

logger = logging.getLogger()
# print 'in global func: ', logger

def func():
    print 'in func: ', logger
Run Code Online (Sandbox Code Playgroud)

在Linux下,结果是:

in main:  <logging.RootLogger object …
Run Code Online (Sandbox Code Playgroud)

python windows logging multiprocessing

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

在 Python 中使用 @staticmethod 和全局函数有什么区别?

我读过了

由于staticmethod无法访问该类的实例,我不知道它和global function?

什么时候应该使用staticmethod?能举个好例子吗?

python decorator

4
推荐指数
2
解决办法
1493
查看次数

a = list().append("hello")vs a = list(); 在python中a.append("你好")?

我有

try:
    a = list().append('hello')
Run Code Online (Sandbox Code Playgroud)

aNoneType

try:
    b = list()
    b.append('hello')
Run Code Online (Sandbox Code Playgroud)

并且b是一种list类型

我认为list()返回一个列表对象,list().append('hello')并将使用返回列表进行追加,但为什么值为a None

python list

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