李卫公的长安城

过上一万年,那城就会变成黑色,永远不倒……

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  373篇文章 :: 38篇收藏:: 393篇评论:: 5个Trackbacks

公告




版权声明:本 blog 上所有原创文章、图片,未有特别声明者,均遵守 Common Public License。所有翻译、转载文章和图片,版权归属原作者所有,遵守原作者声明。

warning


给我写信

文章

收藏

相册

Focus

Friend's blog

Miscellaneous

My Favourite Blogs

存档


正在读取评论……


1.urlencode
Python内置了urlencode函数:
urllib.urlencode()
不幸的是,这个函数只能接收key-value pair格式的数据。
例如:
m = {'name' : 'somebody'; 'gender' : 'male'}
s = urllib.urlencode(m)
print s
gender=male&name=somebody

如果我们只希望urlencode单个的String对象,这时候,除了将它转化为mapping object之外,还有一种方法:
def my_urlencode(s) :
    p = repr(s).replace(r'\x', '%')
    return p[1:-1]
print my_urlencode('你好')
%c4%e3%ba%c3

一点题外话:
Java中的urlencode需要指定编码:
java.net.URLEncoder.encode(String s, String enc)
因为JVM内部所有的字符都是UTF的,故而需要指定encode的编码;
但Python不需要,因为Python中“看起来一样”的字符,如果编码不同,repr的结果是不一样的——也就是说,GBK编码的“新浪”和UTF-8编码的“新浪”,repr的结果是不同的,换句话说,my_urlencode的结果,取决于传入的字符串本身的编码。

2. tempfile
开发中经常需要用到临时文件,Python内置了对tempfile的支持:
import tempfile
tf = tempfile.TemporaryFile()
tf.write('hello')
tf.seek(0) #prepare for reading
tf.read()
......
需要注意的是:
使用tempfile不需要知道文件名,默认的打开参数是w+b,w表示可读可写,binary用来保证在不同的平台上具有同样的内容。
另外,tempfile一旦调用close()函数就会立刻删除,因此,写完文件之后,不必执行close()操作,否则下面的程序无法读取该文件的内容。

Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1009788


[点击此处收藏本文]  发表于2006年08月21日 6:25 PM




正在读取评论……

发表评论

大名:
网址:
验证码
评论