【Python基础】1.1.2 多文件合并操作
来源:互联网 发布:python def peven (n) 编辑:程序博客网 时间:2024/06/07 03:42
语言:Python
IDE:Python.IDE
- IPO描述
通过文件“data1.txt”以及”data2.txt”表述,其中第一个文件存储姓名+电话,第二个文件存储姓名+邮箱,具体如下图。 要求建立新的”data.txt”合并上述两表
I:输入文件
P:处理数据
O:输出新文件
- 普通源码段
#初始化工作 ftele1=open('data1.txt') ftele2=open('data2.txt') ftele1.readlines() ftele2.readlines() lines1=ftele1.readlines() lines2=ftele2.readlines() list1_name=[] list1_tele=[] list2_name=[] list2_email=[]
#获取电话信息 for line in lines1: elements=line.split() //去空格 list1_name.append(str(elements[0].decode('gbk'))) //中文解码按照gbk //append为添加元素 list1_tele.append(str(elements[1].decode('gbk')))
#合并 lines=[] lines.append('姓名\t 电话\t 邮箱\n') //按索引遍历姓名1 for i in range(len(list1_name)): s='' if list_name[i] in list2_name: j=list2_name.index(list1_name[i]) //index通过相同的名字索引位置 s='\t'.join(list1_name[i],list1_tele[i],list2_email[j]) s+='\n' else: s='\t'.join(list1_name[i],list1_tele[i],str(' _____ ') s+='\n' lines.append(s)
#处理剩余姓名及邮箱 for i in range(len(list2_name)): s='' if list2_name[i] not in list1_name: s='\t'.join(list2_name[i],str(' _____ '),list2_email[i]) s+='\n' lines.append(s)
#合并 ftele3=open(data.txt','w') ftele3.writelines(lines)
#最终一些小细节 ftele3.close() ftele1.close() ftele2.close() print("complete!")main()
- 字典结构简化源码段
#初始化工作 ftele1=open('data1.txt') ftele2=open('data2.txt') ftele1.readlines() ftele2.readlines() lines1=ftele1.readlines() lines2=ftele2.readlines() dic1={} dic2={} //字典方式保存
#获取两个文件信息for line in line1: elements=line.split() dic1{elements[0]}=str(elements[1].decode('gbk'))for line in line2: elements=line.split() dic2{elements[0]}=str(elements[1].decode('gbk'))
#处理与上文类似lines=[]lines.append('姓名\t 电话\t 邮箱\n)for key in dic1: s='' if key in dic2.keys(): s='\t'.join([str(key.decode('gbk')),dic1[key],dic2[key]]) s+='\n' else: s='\t'.join([str(key.decode('gbk')),dic1[key],str(' _____ ')]) lines.append(s)for key in dic2: s='' if key not in dic1.keys(): s='\t'.join([str(key.decode('gbk')),str(' _____ '),dic2[key]]) s+='\n' lines.append(s)
#结束 ftele3=open(data.txt','w') ftele3.writelines(lines) ftele3.close() ftele1.close() ftele2.close() print("complete!")main() //可以见得字典大大简化了代码
阅读全文
0 0
- 【Python基础】1.1.2 多文件合并操作
- Python文件操作--文件拷贝&文件合并
- python文件的基础及文件读入合并操作使用实例
- Python基础-文件操作
- Python基础-文件操作
- Python批量操作文件,批量合并
- Python基础--基本文件操作
- Python基础学习----文件操作
- python基础之文件操作
- python基础之文件操作
- python基础-10-文件操作
- python 37 pandas操作csv文件小结,csv文件合并
- Python基础(五) Python文件操作
- Python学习:IO基础(2):对文件目录的操作
- Java 文件合并操作
- Python合并(拼接)多个CSV文件
- Python 批量合并多个txt文件
- python合并多个csv文件
- 本地计算机上的XXX服务启动后停止。某些服务在未由其它服务或程序使用时将自动停止
- SpringBoot学习Demo
- 从IT定律到计算机
- luogu P2383 狗哥玩木棒
- Java高并发,如何解决,什么方式解决
- 【Python基础】1.1.2 多文件合并操作
- 删除数组第一个元素
- LCA(最近公共祖先 Tarjan) CodeVs-2370-小机房的树
- Linux
- elasticsearch 集群环境搭建
- 三栏布局的5种解决方案及优缺点
- 使用Angular官方Demo时,下拉菜单没有数据
- java lamada表达式使用总结
- Vert.x 简介