最孤单的人分两种,一种恨不得全世界都跟他一样倒霉,一种则希望别人能幸福,因为看到幸福的人,他也略略觉得温暖。
import sys
import os
reload(sys)
sys.setdefaultencoding('utf-8')
判断文件开头结尾
一般来说,此方法应用于那些判断处理文件,或者对文本处理做判断。
判断字符串的开头使用startswith(),判断字符串的结尾使用endswith(0方法。说教无益,上代码。
data_str='langzi'
if data_str.startswith('l'):
print True
if data_str.endswith('i'):
print True
运行结果:
True
True
当然括号内还可以加上元组,只要元组内的元素某一个元素满足要求就返回True。
if data_str.endswith(('l','2','i')):
print True
运行结果:
True
打印当前目录下的所有文件
当该目录下的文件存在中文名的时候,在Python2中输出结果会乱码显示。
for x in os.listdir('.'):
print x
运行结果:
�ָ����ı��ַ���.py
��Ƭ���� ����ʡ�ڴ�������.py
�б� �ֵ� ������.py
�ж��ַ����Ŀ�ͷ���β.py
����������������.py
�ɵ������� �͵���������.py
ͬʱ�����������.py
�ֵ��б�ɸѡ����.py
�ַ�������.py
�����ֵ��ֵ����.py
������.py
���������� yield.py
ͳ�Ƴ��ִ���.py
������.py
这里稍微引申一下被人诟病的编码问题,Python2中字符串都是以Unicode编码储存在内存中,但是在win下的命令窗口编码是gbk编码,所以会乱码。
主要说一下decode和encode这两个方法,decode(‘gbk’)的意思就是把gbk编码的字符串转换成unicode编码的字符串,也就是俗称的编码,encode(‘utf-8’)的意思就是把unicode编码的字符串转换成utf-8编码,也就是俗称的解码。
解决乱码问题的办法
for x in os.listdir('.'):
print x.decode('gbk').encode('utf-8')
运行结果:
分割拆分文本字符串.py
切片操作 (节省内存做法).py
列表 字典 的排序.py
判断字符串的开头与结尾.py
反向迭代和正向迭代.py
可迭代对象 和迭代器对象.py
同时迭代多个对象.py
字典列表筛选数据.py
字符串对齐.py
按照字典的值排序.py
生成器.py
生成器函数 yield.py
统计出现次数.py
迭代器.py
实际案例
要求:打印当前目录下所有的py文件。
困惑:无
分析:使用os.listdir()获取文件名,然后用endswith()判断是否为py文件。
for x in [name.decode('gbk').encode('utf-8') for name in os.listdir('.') if name.endswith('.py')]:print x