2006年01月19日

Leo 可以使用外部编辑器编辑节点,并捕获内容的改动

当我使用 Emeditor 作为其外部编辑器时,发现改动后,
很多节点的第一个字符不能在 Python 运行时通过,
用 Emeditor 打开文件,显示的字符虽然没有什么问题
但是将光标移到改字符上,发现其编码是’U+0FEFF’
一开始还以为是两个程序编码不一致
可是都设为 UTF-8 以后问题依旧

遂 Google 之,发现原来 "\uFEFF" 是用作 UTF 标识的 BOM 字符之一
而我在 Emeditor 中设置了保存为 UTF-8 时在文件头插入 BOM

在 Leo 中使用外部程序编辑节点是将节点生成一个 tmp 文件,
而 Emeditor 在保存时插入的 BOM 就位于文件中,
让 Python 解析器无法识别

这就是问题的原因了!

嗯,看来以后用 Leo 又少了分不爽,多了份快乐:)

2006年01月11日

首先尝试了 Zope3


听说Zope3较2有了很大的改进,而且整合了Twisted。看得我心痒痒,但是装好后一试才发现原来很多功能我都不需要。Zope对我来说有些太过笨重了,也许以后回过头来还会选他吧,但现在还是先试试别的。

现在正在使用 TurboGears
———————————–

看了它的ScreenCast还真是很酷,易用性方面就不用说了,本来就是为了快速开发而开发的。人气也很旺,有人气就不怕没有生命力:)

不过对于我这样在web方面没有一点基础的人来说,学习的难度还是有的。
顺着 tg -> cherrypy -> tg -> other components
的步骤慢慢摸索吧

争取在过年之前作出一个有实用价值的程序

2005年12月16日

先看看别人总结的经验
http://blog.donews.com/dreamingk/archive/2005/02/28/291397.aspx


2005年12月09日

我的个人心得,难免有纰漏,欢迎拍砖:)
对其他语言也是一样,其实就是个字符编码的转换


# -*- coding: gbk -*-
a = ‘中文’
print a
print repr(a)
print a.decode("gbk")
print repr(a.decode("gbk"))
print repr(a.decode("gbk").encode("gbk"))


运行结果是:

中文
‘\xd6\xd0\xce\xc4′
中文
u’\u4e2d\u6587′
‘\xd6\xd0\xce\xc4′

第一行告诉 python 解释器使用 gbk 的编码,这是 w32 下面默认的中文编码方式,用起来比较方便;要是 linux 下面直接 utf-8 也就好了。
解释器知道了字符的编码方式,在调用 print 的时候就可以智能的处理字符的编码了,所以第一行能直接显示。第二行则是字符的内部编码(这里是 gbk 的)
有很多模块是不支持 gbk 编码的,这时就要将其转化为utf-8 的字符(如果连这个也不支持….)。第三行虽然得到的结果和第一行一样,但其内部编码是完全不同的(参考第四行的结果)。
也可以将 utf-8 的字符再转回 gbk 编码(第五行)


2005年11月25日


http://www.cfcl.com/vlb/h/fontmono.html
http://chagel.com/PermaLink,guid,5a93d3fa-b040-4381-ba03-747f85e714ef.aspx
http://rchen.cnblogs.com/archive/2005/10/02/248003.html

这里居然还有下载….
http://www.lowing.org/fonts/

2005年11月21日

http://www.pfdubois.com/numpy
http://www.pfdubois.com/numpy/html2/numpy.html

使用matplotlib的前提….



基本术语

size 是一个数组总的大小
shape 是每一维的长度
rank 是维数

typecode
: 一个字符,指明数组中元素的类型


今天开始学习 matplotlib — 一个使用Python 画图的库~
粗略的看了看,功能还真强,至少够我用了:)
还有个ChartDirector,划等值线图够pp(棒子的图和它作的有些神似….)~可惜人家要USD,只能作罢

2005年11月10日
開發python程式時,如果您要使用有關ActiveX的相關程式庫。多多少少會用到makepy的工具來產生一些python所需的檔案。一般在使用的時候並不會有什麼樣的問題。可是如果您又透過py2exe將程式包裝起來時,將會發現到一件非常糟糕的事情,也就是makepy所產生出來,置於 win32com.gen_py模組之下的檔案,並沒有被載入。
這個時候,其實您需要加上一個簡單的py2exe參數來要求py2exe將該模組下面所有的東西載入。例如:

> python setup.py py2exe -i win32com.gen_py.*

這樣,就可將您需要的檔案載入了。這個技巧也可以用在任何py2exe無法找到關連性的模組中,強制讓py2exe載入模組。不過,要小心的是有時候會載入太多不必要的模組喔。



原文:
http://www.dev.idv.tw:8080/folder.2005-02-27.6191275545/folder.2005-02-14.5124708507/folder.2005-02-14.6268706512/document.2005-02-26.2583425728

2005年11月01日


2005年10月29日

ADO

使用ADO能更快速的读取数据库,并且在理解了RecordSet的概念之后,ADO的使用是非常简单的


import win32com.client
# Create Connection object and connect to database.
conn = win32com.client.Dispatch('ADODB.Connection')
conn.ConnectionString = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/MyDB.mdb;'
conn.Open()
## also use this
#DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/MyDB.mdb;'
#conn.Open(DSN)
rs = win32com.client.Dispatch(r'ADODB.Recordset')
# 使用SQL语句得到数据集
sql = "SELECT * from tab"
rs.Open(sql)
while not rs.EOF:
# do something
print rs.Fields("fiel")
rs.MoveNext()
rs.Close()
conn.Close()



通过 Python 的 ODBC 扩展模块访问

首先下载,推荐 pywin32 这个插件,里面包含了 ODBC

然后运行下面的代码:


import dbi, odbc
try:
s = odbc.odbc('DSN/UID/PASSWORD')
cur = s.cursor()
cur.execute('select * from discounts')
print cur.description
for tup in cur.description:
print tup[0],
print
while 1:
rec = cur.fetchmany(10)
if not rec: break
print rec
except NameError,e:
print 'error ', e, 'undefined'


 就这么简单,并且符合 Python 模块的一贯用法。

缺点就是只能通过连接数据库访问实例,对我这种情况略为复杂。



study.pay500.com/4/s42260.htm

以后再整理!