Tag: python

编译Python

我如何编译并运行一个python文件(* .py扩展名)?

如何在Python中logging模块?

而已。 如果你想logging一个函数或一个类,你可以在这个定义之后加一个string。 例如: def foo(): """This function does nothing.""" pass 但是模块呢? 我如何logging一个file.py的function?

导入python模块不在path上

我有一个模块foo,包含util.py和bar.py. 我想导入它在IDLE或Python会话。 我如何去做这件事? 我找不到有关如何导入不在当前目录或默认的python PATH中的模块的文档。 尝试import "<full path>/foo/util.py" ,然后from "<full path>" import util 我能得到的最接近的是 import imp imp.load_source('foo.util','C:/…/dir/dir2/foo') 这给了我在Windows 7上的权限被拒绝。

获取Python可以编码的所有编码的列表

我正在编写一个脚本,将在Python 2.6中尝试将字节编码为许多不同的编码。 有什么办法可以获得我可以迭代的可用编码列表吗? 我试图这样做的原因是因为用户有一些文本编码不正确。 有有趣的人物。 我知道这个搞乱了的unicodeangular色。 我希望能够给他们一个答案,如“你的文本编辑器正在将该string解释为X编码,而不是Y编码”。 我想我会尝试使用一种编码对该字符进行编码,然后使用另一种编码重新对其进行解码,然后查看是否获得相同的字符序列。 即这样的事情: for encoding1, encoding2 in itertools.permutation(encodinglist(), 2): try: unicode_string = my_unicode_character.encode(encoding1).decode(encoding2) except: pass

正确的方法来validation类的实例的属性

有这样一个简单的Python类: class Spam(object): __init__(self, description, value): self.description = description self.value = value 我想检查以下约束: “描述不能为空” “值必须大于零” 我是不是该: 1.创build垃圾邮件对象之前validation数据? 2.检查__init__方法的数据? 3.在Spam类上创build一个is_valid方法,并用spam.isValid()调用它? 4.在Spam类上创build一个is_valid静态方法,并用Spam.isValid(description,value)调用它? 5.检查setters声明的数据? 6.等等 你能推荐一个精心devise的/ Pythonic /不是详细的(在有很多属性的类)/优雅的方法吗?

大pandas按组合和列进行sorting

给定以下dataframe In [31]: rand = np.random.RandomState(1) df = pd.DataFrame({'A': ['foo', 'bar', 'baz'] * 2, 'B': rand.randn(6), 'C': rand.rand(6) > .5}) In [32]: df Out[32]: ABC 0 foo 1.624345 False 1 bar -0.611756 True 2 baz -0.528172 False 3 foo -1.072969 True 4 bar 0.865408 False 5 baz -2.301539 True 我想按组合( A )按B总和,然后按C (不汇总)的值sorting。 所以基本上得到了A组的顺序 In […]

为什么开始慢于切片

为什么startwith的执行慢于切片? In [1]: x = 'foobar' In [2]: y = 'foo' In [3]: %timeit x.startswith(y) 1000000 loops, best of 3: 321 ns per loop In [4]: %timeit x[:3] == y 10000000 loops, best of 3: 164 ns per loop 令人惊讶的是,即使包括计算长度,切片仍然显得更快: In [5]: %timeit x[:len(y)] == y 1000000 loops, best of 3: 251 ns per loop […]

timeit与时间装饰器

我正在尝试一些代码。 首先我使用了定时装饰器: #!/usr/bin/env python import time from itertools import izip from random import shuffle def timing_val(func): def wrapper(*arg, **kw): '''source: http://www.daniweb.com/code/snippet368.html''' t1 = time.time() res = func(*arg, **kw) t2 = time.time() return (t2 – t1), res, func.__name__ return wrapper @timing_val def time_izip(alist, n): i = iter(alist) return [x for x in izip(*[i] * n)] @timing_val […]

点差冻结与点子名单

产出比较显示差异: user@user-VirtualBox:~$ pip list feedparser (5.1.3) pip (1.4.1) setuptools (1.1.5) wsgiref (0.1.2) user@user-VirtualBox:~$ pip freeze feedparser==5.1.3 wsgiref==0.1.2 Pip的文档状态 freeze Output installed packages in requirements format. list List installed packages. 但是什么是“需求格式”,为什么pip list列表比pip freeze产生更全面的列表?

如何将自定义字段添加到Python日志格式string?

我目前的格式string是: formatter = logging.Formatter('%(asctime)s : %(message)s') 我想添加一个名为app_name的新字段,并在每个包含此格式化程序的脚本中使用不同的值。 import logging formatter = logging.Formatter('%(asctime)s %(app_name)s : %(message)s') syslog.setFormatter(formatter) logger.addHandler(syslog) 但我不知道如何将该app_name值传递给logging器插入格式string。 我显然可以让它出现在日志消息,但每次都传递,但这是混乱。 我试过了: logging.info('Log message', app_name='myapp') logging.info('Log message', {'app_name', 'myapp'}) logging.info('Log message', 'myapp') 但没有工作。