管道Python程序的输出时,Python解释器会对编码感到困惑,并将其设置为None.这意味着这样的程序:
# -*- coding: utf-8 -*-
print u"åäö"
Run Code Online (Sandbox Code Playgroud)
正常运行时会正常工作,但失败时:
UnicodeEncodeError:'ascii'编解码器无法对位置0中的字符u'\ xa0'进行编码:序数不在范围内(128)
当在管道序列中使用时.
在配管时使这项工作的最佳方法是什么?我可以告诉它使用shell/filesystem /无论使用什么编码吗?
到目前为止我看到的建议是直接修改你的site.py,或者使用这个hack对defaultencoding进行硬编码:
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
print u"åäö"
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法使管道工作?
我有两个带有命名元素的列表:
a <- list(a=1, b=2)
b <- list(b=3, c=4)
Run Code Online (Sandbox Code Playgroud)
我想组合这些列表,以便具有相同名称的任何元素都将被列表b覆盖,所以我得到了这个:
list(a=1, b=3, c=4)
Run Code Online (Sandbox Code Playgroud)
我知道我可以循环执行此操作,但是在R中有更简洁的方法吗?
我正在使用ConfigParser来配置我的应用程序,现在我想让它易于分发,同时保持可配置性.
我想我需要一个包含配置文件模板的目录,以及一些生成配置以实际使用这些模板的方法.然后我需要一个存储它的地方,可以在virtualenv,用户主目录等工作.我希望它与普通的Unix软件包的工作方式一样接近,即在其他方面有配置,但在主目录中有覆盖.是否有现成的解决方案,如果没有,我应该在setup.py等中放置什么才能让它像我想要的那样工作?
我已经看到了几种标准,用于编写关于函数期望并在Python中返回的数据类型的注释.关于哪一个是最佳实践,是否达成共识?
http://www.python.org/dev/peps/pep-3107/中的新功能是否应该开始使用?
如果我有一个使用线程和队列的程序,我如何获得停止执行的异常?这是一个示例程序,不能用ctrl-c停止(基本上是从python文档中删除).
from threading import Thread
from Queue import Queue
from time import sleep
def do_work(item):
sleep(0.5)
print "working" , item
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
q = Queue()
num_worker_threads = 10
for i in range(num_worker_threads):
t = Thread(target=worker)
# t.setDaemon(True)
t.start()
for item in range(1, 10000):
q.put(item)
q.join() # block until all tasks are done
Run Code Online (Sandbox Code Playgroud) 我有一个星型模式架构数据库,我想在SQLAlchemy中表示.现在我遇到了如何以最佳方式完成这项工作的问题.现在我有很多具有自定义连接条件的属性,因为数据存储在不同的表中.如果有可能重新使用不同事实表格的维度,那将是很好的但我还没弄清楚如何做得很好.
我使用以下代码来记录警告:
import logging
logging.captureWarnings(True)
formatter = logging.Formatter('%(asctime)s\t%(levelname)s\t%(message)s')
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_handler.setFormatter(formatter)
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,我的日志记录格式化程序未应用,警告显示如下:
WARNING:py.warnings:/home/joakim/.virtualenvs/masterload/local/lib/python2.7/site-packages/MySQL_python-1.2.3c1-py2.7-linux-x86_64.egg/MySQLdb/cursors.py:100: Warning:
InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table.
Run Code Online (Sandbox Code Playgroud)
而不是预期的格式:
2012-11-12 18:19:44,421 INFO START updating products
Run Code Online (Sandbox Code Playgroud)
如何将正常格式应用于捕获的警告消息?
我们正在运行一个包含几种不同语言的大型项目:Java,Python,PHP,SQL和Perl.
到目前为止,人们一直在他们自己的私有存储库中工作,但现在我们想要将整个项目合并到一个存储库中.现在的问题是:目录结构应该如何?我们应该为每种语言设置单独的目录,还是应该按组件/项目分开?python/perl/java如何处理公共目录布局?