python的一些记录

正则表达式的一些常用元字符和语法: http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

 

正则表达式匹配html问题,经常会出现正则写对了,但匹配就是不成功,用notepad++查看html代码。

原因是:查看的html代码中,各html标签间可能有换行符,tab符等不可见字符,所以要在各html间增加【\s*】来匹配,同时python的使用中也要打开re.S 来 dot match all(包括换行)

for each in re.findall(person,page,re.S):
	print each

 

对于utf-8编码的网页,用urllib2下载网页时,正确处理中文的方法是:decode('utf-8)

page = urllib2.urlopen(url).read().decode('utf-8')

 

中文写到文件的方法:(在windows下,文件默认是ansii编码)

file = open(r'e:\\Chow\\result.txt','w')
...
print >>file,each.encode('gbk'),'\n'

 或者用codecs模块,以utf-8打开文件:

file = codecs.open(r'e:\\Chow\\result.txt','w','utf-8')
...
print >>file,each,'\n'

 

 

1.写文件中文问题

在windows写中文txt文件时,遇到问题:

 

UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 0: ordinal
not in range(128)

解决:

 

 

import codecs

file = codecs.open('filepath', 'w', 'utf-8')
str = '中文输入'
file.write(str.decode('gbk'))
fiile.close()

或者:

在python的安装目录下的Lib目录,找到site.py,修改def setencoding()方法
def setencoding():
   .....
   ....
    if 0:
        # Enable to support locale aware default string encodings.

把那个if 0改为if 1: 

 

 

 

 

.py文件的第一行加入:

#-*- encoding:UTF-8 -*-

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值