Differences between revisions 1 and 2
Revision 1 as of 2004-08-09 23:28:59
Size: 6189
Editor: Zoom.Quiet
Comment:
Revision 2 as of 2004-08-12 18:49:48
Size: 6537
Editor: Zoom.Quiet
Comment: 浮点数的输出格式
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
=== 浮点数的输出格式 ===
{{{
>>> a=6200-6199.997841
>>> a
0.0021589999996649567
>>> print "%f"%a
0.002159
>>> import fpformat
>>> fpformat.fix(a, 6)
'0.002159'
>>> print fpformat.fix(a, 6)
0.002159
>>> print "%.6f"%a
0.002159
>>> print "%.7f"%a
0.0021590
>>> print "%.10f"%a
0.0021590000
>>> print "%.5f"%a
0.00216
}}}

收集Python 各种方面的技巧片段! -- Zoom.Quiet [DateTime(2004-08-09T23:28:59Z)]

TableOfContents

各种实用代码片段

浮点数的输出格式

>>> a=6200-6199.997841
>>> a
0.0021589999996649567
>>> print "%f"%a
0.002159
>>> import fpformat
>>> fpformat.fix(a, 6)
'0.002159'
>>> print fpformat.fix(a, 6)
0.002159
>>> print "%.6f"%a
0.002159
>>> print "%.7f"%a
0.0021590
>>> print "%.10f"%a
0.0021590000
>>> print "%.5f"%a
0.00216

怎么下载网络上的一张图片到本地

>知道了一张图片的URL >比如http://www.yahoo.com/images/logo.gif >想将它下载到本地保存应该怎么实现?

   1 urllib.urlretrieve(url, filename)

---Limodou

使用locale判断本地语言及编码

from::[http://limodou.donews.net/limodou/posts/11510.aspx limodou的学习记录 ]

在支持unicode软件中,经常需要在不同的编码与unicode之间进行转换。

那么对于一个本地文件的处理,首先要将其内容读出来转换成unicode编码,在软件中处理完毕后,再保存为原来的编码。

如果我们不知道文件的确切编码方式,可以使用默认的编码方式。那么我们可以使用locale模块来判断默认编码方式。

>>>import locale
>>>print locale.getdefaultlocale()
('zh_CN', 'cp936')

可以看出,我的机器上默认语言是简体中文,编码是GBK。

__new__的使用

from: [http://www.linuxforum.net/forum/showflat.php?Cat=&Board=python&Number=487139&page=1&view=collapsed&sb=5&o=31&fpart= 中国Linux论坛 -rings]

new

new是python里object的方法。如果你要重载new,那么你需要继承object。 new是类方法。他不带self参数。 newinit是不一样的。initself参数。所以他是在对象已经被构造好了以后被调用的。而如果你要在对象构造的时候 做一些事情,那么就需要使用newnew的返回值必须是对象的实例。 new一般在 一些模式里非常有用。我们看一个例子。 这个例子是《thinking in python》里的一个Singleton例子

class OnlyOne(object): 
    class __OnlyOne: 
        def __init__(self): 
            self.val = None 
        def __str__(self): 
            return ′self′ + self.val 
            
        instance = None 
        def __new__(cls): # __new__ always a classmethod 
            if not OnlyOne.instance: 
            OnlyOne.instance = OnlyOne.__OnlyOne() 
            return OnlyOne.instance 
        def __getattr__(self, name): 
            return getattr(self.instance, name) 
        def __setattr__(self, name): 
            return setattr(self.instance, name) 

x = OnlyOne() 
x.val = 'sausage' 
print x 
y = OnlyOne() 
y.val = 'eggs' 
print y 
z = OnlyOne() 
z.val = 'spam' 
print z 
print x 
print y 

我们可以看到OnlyOne从object继承而来。

如果你不继承object,那么你的 new就不会在构造的时候来调用。

当x = OnlyOne()的时候,其实就是调用new(OnlyOne), 每次实例化OnlyOne 的时候都会调用。

因为他是类方法。

所以这段代码就是利用这个特性来实现Singleton的。

因为不管构造多少对象,都要调用new.

那么在OnlyOne里保持一个类的属性, instance.

他代表嵌套的_OnlyOne的实例。

所以,对于他,我们只构造一次。

  • 以后每次构造的时候都是 直接返回这个实例的。

所以,在这里, x,y,z 都是同一个实例。

这个方法和典型的用C++ 来实现 Singleton的道理是一样的。

Python多进程处理之参考大全

from:: [http://blog.huangdong.com] (即将成为历史的HD的个人blog,大家默哀) :) 多进程处理让很多开发人员转向了线程处理的操作,但是,在一些特别的情况下,我们必须考虑两个完全不同的系统间的进程通讯。方法很多,最简单的办法就是通过IPC进行操作了。 这几天我一直在寻找这方面的资源,有所收获后,记载下来,收录归档罢。

RemontD是一个python的进程间解决方案,它可以让你的多个进程共享一个dictionary来进行交互操作。

则是一个类RMI的多台服务器远程过程调用的解决方案,但是它支持在本机调用时使用IPC进行操作。

POSH的作者显然是一个线程的憎恨者,他为PyCon DC 2003贡献了POSH,它使得python的进程间可以共享数据。

显然是两个python的IPC简单包装,你可能在不同的平台上要自己仔细试试了。在表面上,两者都说明自己支持Linux平台的。

伟大的ONLAMP总是会给我惊喜,这是使用PHP来操作共享内存的一个非常好的文章,它甚至将IPC在unix下的使用也说的非常的明白了。

这是一个在两年前就看到的一个python操作共享内存的实现,如果必须从头做起,相信这个原始的代码,可以成为一个很好的参考。

将你的Python脚本转换为Windows exe程序

from:: [http://blog.huangdong.com] (即将成为历史的HD的个人blog,大家默哀) :)

将Python的脚本变为一个可以执行的Windows exe程序可能的好处会说出很多,我最喜欢的则是它会让你写的程序更像是一个“程序”罢。但是,凡事有利就有弊,这样必然会让python的一些好处没有了。

你可以从这里找到[http://starship.python.net/crew/theller/py2exe/ py2exe]的相关信息,可以在这里下载到[http://prdownloads.sourceforge.net/py2exe/py2exe-0.4.2.win32-py2.3.exe?download py2exe-0.4.2.win32-py2.3.exe]安装包。 但是它的使用也还是比较麻烦的,需要你自己手工的写一个小的脚本,就像这样:

   1 # setup.py
   2 from distutils.core import setup
   3 import py2exe
   4 
   5 setup(name="myscript",
   6 scripts=["myscript.py"],
   7 )

再通过python的执行:

python setup.py py2exe

来使用。更多的信息上它的网站看罢。

PyTips (last edited 2009-12-25 07:08:33 by localhost)