Python学习笔记:五
来源:互联网 发布:安卓刷linux系统 编辑:程序博客网 时间:2024/06/06 20:09
上周回顾
一 匿名函数
关键字: lambda
注意:
- lambda只是一个表达式 函数体比def简单很多
lambda主体是一个表达式 而不是一个代码块 仅仅能在 lambda表达式中封装有限的逻辑进去
#lambda匿名函数的使用
# func = lambda a,b:a+b
# print(func(3,5))#定义并调用
# print((lambda a,b:a+b)(3,5))# a = 10
# func = lambda:a
# print(func())
附加
队列实现获取目录下所有文件名from collections import dequeimport ospath = r'C:\Users\xlg\PycharmProjects\shPython1701\day5流程控制'que = deque()que.append(path)while len(que) != 0: myPath = que.popleft() myList = os.listdir(myPath) for fileName in myList: # print(fileName) newPath = os.path.join(myPath,fileName) if os.path.isdir(newPath): que.append(newPath) else: print("文件名",newPath)
二 文件的操作
(1) file = open(path,打开的方式) #打开文件 将会返回一个file对象 使用这种方式的打开 就需要去关闭
open的打开方式
函数名 函数的说明
r 以只读的方式打开 文件的描述符 放在文件的开头
rb 以二进制读的格式打开 文件的描述符 放在文件的开头
w 以清空写的方式打开 如果文件存在则清空 不存在则尝试创建
wb 以二进制清空写的格式打开 如果文件存在则清空 不存在则尝试创建
a 打开一个文件用于追加写 如果文件存在 文件描述会放在文件的末尾 不存在则尝试创建
ab 以二进制追加写的方式打开
(2) 文件的读取
file.read([size]) 读取文件下的所有内容(默认) 如果 给指定了的size 会按照你的size去进行读取file.readline() 读取一行file.readlines() 读取所有的行 以列表的形式返回
(3) 文件的写
file.write(str) 将字符串写入文件file.writelines() 将字符串放在列表里 如果需要换行 则自己每个加入一个换行符
(4) 字符的编码
encode(字符编码)decode(字符解码)注意:如果以什么字符集进行编码 那么就以什么字符进行解码
(5)例子
分别按年龄和区域划分数据,并存入相应文件数据格式:曹阳,32010619720506042x,F,19720506,-,210005,13770848687,025-842019149,-,cy_qing@163.com,0孙旸,310104198405232812,M,19840523,上海市瑞金二路129弄6号,-,13764090424,-,-,gemini9991@gmail.com,jingjing,420105197404030028,F,19740403,-,430060,15871377772,027-88219588,-,74jingjing@163.com,0python代码:# 按年龄划分import codecspath = 'F:\qianfeng\python36\day09/kaifanglist.txt'path2 = 'F:\qianfeng\python36\day09/作业划分/年龄划分'path3 = 'F:\qianfeng\python36\day09/作业划分/区域划分'# 获取全部数据def getData(path): with codecs.open(path, 'rb', encoding='UTF-8', errors='ignore') as file: dataList = file.readlines() return dataList# 根据需要切片取出数据def getNeedData(dataList, index, begin, end): needList = [] for line in dataList: need = line.split(',')[index][begin : end] needList.append(need) return needList# 根据要求列表创建文件def mkDir(needList, path): for need in needList: # print(need, type(need)) file = open(path + '/' + need + '.txt', 'wb')# 匹配出生年份,将对应的数据写入文件中def writeData(dataList, needList, index, begin, end, path): for need in needList: for line in dataList: if str(need) == line.split(',')[index][begin : end]: file = open(path + '/' + str(need) + '.txt', 'ab') file.write((line + '\n').encode('UTF-8')) file.close()# 匹配区域代码,将对应的数据写入文件中def writeData2(dataList, needList, index, begin, end, path, areaList = None): for line in dataList: for need in needList: if str(need) == line.split(',')[index][begin: end]: file = open(path + '/' + areaList[need - 1][1] + '.txt', 'ab') file.write((line + '\n').encode('UTF-8')) file.close()# 获取全部文件数据dataList = getData(path)# 按年龄划分# 全部不重复的出生年份# ageList = set(getNeedData(dataList, 1, 6, 10))# # 根据年龄创建文件# mkDir(ageList, path2)# # 匹配出生年份,将对应的数据写入文件中# writeData(dataList, ageList, 1, 6, 10, path2)# 按区域划分# 全部区域代码列表areaList = [[1, '华北地区'], [4, '华中地区'], [2, '东北地区'], [3, '华东地区'], [5, '西南地区'], [6, '西北地区']]# 根据区域创建文件# 先获取区域名称,添加到列表中,areaName = []areaNum = []for area in areaList: areaName.append(area[1]) areaNum.append(area[0])# 然后将列表传递过去,创建文件mkDir(areaName, path3)# 匹配区域代码,将对应的数据写入文件中writeData2(dataList, areaNum, 1, 0, 1, path3, areaList)
阅读全文
0 0
- python学习笔记:五
- Python学习笔记(五)
- Python学习笔记:五
- Python学习笔记(五)
- Python个人学习笔记五
- python学习笔记(五)
- python 学习笔记 (五)
- python学习笔记(五) - 模块
- python学习笔记(五)
- Python学习笔记(五)
- Python学习笔记(五)
- Python学习笔记(五)
- python基础教程学习笔记五
- python学习笔记(五)
- OpenCV python学习笔记(五)
- Python学习笔记(五)
- python-cookbook学习笔记五
- Python-基础学习笔记(五)
- ConfigReader(三十四)—— ReadLevelConfig
- 自定义属性
- Fragment+ViewPager+底部滑动
- Python3:《机器学习实战》之AdaBoost算法(1)算法概述
- String与StringBuffer和StringBuilder之间的区别
- Python学习笔记:五
- android手机之间通过Wifi传递图片示例
- 关于RedisTemplate和StringRedisTemplate
- C#
- SSM学习笔记(一)——多表联查
- 适用于 Windows 的虚拟机扩展和功能
- Android学习-使用Spinner实现下拉列表
- log4j.properties配置详解与实例-全部测试通过
- 8086CPU的寻址方式