全部学习汇总: GreyZhang/python_basic: My learning notes about python. (github.com)
曾经在很长的一段时间内,Python处理中文的时候真是把我难坏了。总觉得使用Python处理中文或者是unicode那真叫一个愁!网络上找来的各种教程看来看去看不明白,网络上搜出来的各种代码试来试去试不出来。可现实中的汉字处理却是多的实在是不可避免。最初我自己的解决方案是遇到需要处理汉字的情况立马转战Perl或者MATLAB,在Perl以及MATLAB的世界中一切还不算是那么困难。
其实,我需要处理的汉字就是那么几种情况,说起来也没有什么难以概述的。大致的工作不外乎如下:
1,把汉字写入到文件里
2,把文件中的汉字读取出来
相信上面两个实现了一切基本上就没有困难了,毕竟在解析器里输出一个汉字还是简单的。
下面也不解释什么unicode了,没有什么高大上,也说不上什么精深。我自己处理这些只能是经验谈。
实践1:把汉字写入到文件
代码:
#!/usr/bin/python
# -*- coding: cp936 -*-
fid = open('t1.txt','w')
fid.write('中文\n')
fid.close()
执行上面的代码,在当前的目录中会生成一个文件名为“t1.txt”的文件,里面的信息自然是“中文”。
总结相应的注意点:第一,加上# -*- coding: cp936 -*-指明编码;第二,中文的字符串按照一般的字符串格式来写不能够写成u'****'的形式。
实践2:把t2.txt中的文字读出来屏显,文件中的文字为“中华人民共和国”
代码:
#!/usr/bin/python
# -*- coding: cp936 -*-
fid = open('t2.txt','r')
text = fid.read()
fid.close()
print text
print type(text)
执行上面的代码,结果显示如下:
>>>
中华人民共和国
<type 'str'>
个人的实践经验:第二行不是必须的。但是处理这种信息的时候加上也没有什么影响。而中文从文件中读取出来的数据类型也是一个普通的字符串。
再附加两个Excel表格处理的例子:
实践3:电子表格的写入
代码:
#!/usr/bin/python
# -*- coding: cp936 -*-
from xlwt import Workbook
book = Workbook()
sheet = book.add_sheet('test')
for num in range(10):
sheet.write(num,0,num)
sheet.write(num,1,(u"测试" + str(num)))
book.save('t3.xls')
在生成的电子表格中写入了10行2列,第一列是0-10数字,第二列是测试+行号的汉字与数字组合。编码要点:第一,代码的第二行必须;第二,汉字必须写成u"***"的形式。
实践4:读取实践3中的Excel并且屏显。
代码:
#!/usr/bin/python
# -*- coding: cp936 -*-
from xlrd import open_workbook
book = open_workbook('t3.xls')
sheet = book.sheet_by_index(0)
print "sheet name is: ",sheet.name
for num in range(sheet.nrows):
print "Line ",num + 1," : ",sheet.cell(num,0).value,' ',
print sheet.cell(num,1).value
代码执行的结果如下:
sheet name is: test
Line 1 : 0.0 测试0
Line 2 : 1.0 测试1
Line 3 : 2.0 测试2
Line 4 : 3.0 测试3
Line 5 : 4.0 测试4
Line 6 : 5.0 测试5
Line 7 : 6.0 测试6
Line 8 : 7.0 测试7
Line 9 : 8.0 测试8
Line 10 : 9.0 测试9
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)