关于python unicode的实验
实验环境:windows xp + vim
文件:test.py。编码:ansi
我们的目标操作test.py中保存的非英文字母。
文件头的#encoding=utf8/gbk,这个是用来说明源文件的硬盘编码以便python识别[4]。
----------------------------------------------
输入:
x = '中文'
输出: 编译失败
编译时需要知道‘中文’的硬盘编码(#encoding=utf8...)。
----------------------------------------------
输入:
#encoding=utf8
x = '中文'
输出: 编译失败
#encoding=utf8与实际源文件的编码不一致(ansi)
----------------------------------------------
#encoding=gbk
x = '中文'
输出:编译成功
同样,把文件存为utf8, 内容改为:
#encoding=utf8
x = '中文'
输出:同样编译成功
----------------------------------------------
#encoding=gbk
' 中文'.decode('gbk')
输出:编译成功
----------------------------------------------
#encoding=gbk
x = '中文'.decode('utf8')
输出: 编译失败。'中文'二字在python当前的内存中是gbk编码,因此只能用gbk decode.
----------------------------------------------
#encoding=gbk
x = '中文'.decode()
输出: 编译失败。因为decode无参数,系统则默认地认为'中文'二字是ascii, 从而尝试将ascii编为unicode。由于'中文'二字在python当前的内存中是gbk编码,只能用gbk decode,因此报错
----------------------------------------------
#encoding=gbk
x = u'中文'.encode('gbk')
print type(u'中文'),type(x),x
输出: <type 'unicode'> <type 'str'> 中文。
----------------------------------------------
#encoding=gbk
x = u'中文'.encode('utf8')
print type(u'中文'),type(x),x
输出:
<type 'unicode'> <type 'str'> 涓枃。虽然还是能运行,但是输出了错误结果,因为实际编码(gbk)和声明的编码(utf8)不匹配
----------------------------------------------
#encoding=gbk
x = ['中文', u'中文', '中文'.decode('gbk')]
print x
输出:
['\xd6\xd0\xce\xc4', u'\u4e2d\u6587', u'\u4e2d\u6587']
----------------------------------------------
#encoding=gbk
x = 'スマ'
print x
输出:
スマ。完全正确。print会把'スマ'转换为'gbk'打印(实际是把‘'スマ'交给操作系统打印,操作系统默认用gbk打
相关文档:
最近在从头开始学习Python, 希望用blog顺便记录下来一些小的技巧。
今天记录第一个: variable _
在python的交互session中,也就是不带文件名直接输入"Python”之后python所创建的session,
变量"_"会保存上一次计算的结果。例如:
这个变量对经常把python当计算器用的同学可能有用。
参考:sys.displayhook( ......
用python写的抓取天气预报的脚本
http://blog.chinaunix.net/u2/82009/showart_2166843.html
从昨天开始的看关于网络抓取的东西,而且自己的用的是awesome ,所以写了这个天气预报的脚本给我的awesome,这个天气脚本直接取下来的话是七天的天气预报从中国天气网上,我后面对它做了处理,用到了我的awesome上
效果:1日星 ......
闲的无聊就看了一点关于python的基础知识,当时也不知道python和perl之间争论的这么的激烈(主要是当时不知道perl这个语言的性质),所以直接就看了python,下面是我的第一个用python写的小程序源码,希望朋友们多多指教,有什么问题大家尽管指正,在此先谢谢大家了。
[code]
#!/usr/bin/python
import sys, os, re
impor ......
python中的datetime module是专门处理时间相关内容的模块,功能很强大,但是反而显得比较复杂。
一下代码是用来求从mysql中取到的timestamp和当前时间比较,求时间差的方法
import datetime
lasttime=a.get_last_timestamp(sid=40)[-1]["last_time"] #取到timestamp
delta = datetime.datetime.now()-lasttime # ......