两个txt文件通过某一字段关联
2017-07-05 21:43
281 查看
背景
将两个txt文件通过两者共有的某一项进行关联,类似于数据库中的不同表通过id相关联。txt1:
#checkins(userID/venueID/time/offset)
txt2:#
pois(venueID/latitude/longtitude/words/country)
通过共有项
venueID,将
txt1的数据以及
txt2的数据关联起来,写入一个新的文件
txt3。
格式如
userID/venueID/time/offset/latitude/longitude/words/country
思路
将txt2文件的
venueID作为字典的
key,然后将
latitude,longtitude,words,country写入一个列表里作为字典的值。
比对
txt1中的
venueID,相同则直接将
txt1的此行写入
txt3,同时将字典中的
venueID对应的值——
latitude,longtitude,words,country写入
txt3
代码
f1=open('f:\checkins.txt','r') f2=open('f:\pois.txt','r') fout=open('f:\dataset.txt','a+') dicc=dict() for line in f2: #将pois.txt截取出各个字段,写入字典中,key为venueID,value为[latitude,longitutde,words,country] line=line.strip().split('\t') values=[] latitude=line[1] longitutde=line[2] words=line[3] country=line[4] values.append(latitude) values.append(longitutde) values.append(words) values.append(country) dicc[line[0]]=values #venueID:[latitude,longitutde,words,country] #venueID_list=[] for line1 in f1: venueID=line1.split('\t')[1] if(dicc.get(venueID) != None): #if(venueID not in venueID_list): #去掉重复,不需要则注释掉 #venueID_list.append(venueID) fout.write(line1.strip('\n')+'\t'+dicc[venueID][0]+'\t'+dicc[venueID][1]+'\t'+dicc[venueID][2]+'\t'+dicc[venueID][3]) fout.write('\n') f1.close() f2.close() fout.close()
相关文章推荐
- 【Python系列3】两个txt文件通过id进行关联
- 设计一个表的两个字段都和同一个表关联时候配置文件的处理
- Java根据某一字段合并两个 Excel文件
- UNIX环境高级编程学习之第十五章进程间通信 - 两个进程通过映射普通文件实现共享内存通信
- 通过注册表实现文件关联
- update 把两个表关联后把B表一列的值更新A表的某一列
- 修复txt文件关联
- 解决通过identity字段关联的多个数据表插入问题
- 通过数据库内表的字段动态生成,同时也适应生成Dao等的文件
- 在某一磁盘目录下将.txt的所有文件遍历打印到控制台上
- 两个文件关联的Windows命令
- 水晶报表使用经验谈3--在报表中显示多个表的字段(通过表关联)
- 找出包含字符串"from"但不含字符串"127.0.0.1"的txt文件 (用SQL+Batch+grep求两个文件集合的差.)
- 如何通过注册表修改文件关联方式
- 随机读取txt文件某一行
- ASP.NET文件下载简单实现(也可以通过直接读取数据库 大字段文件,如oracle 中的bolg,long raw 等大字段文件)
- Hibernate通过配置文件对Char字段进行去Trim
- 如何通过ASP文件来增加数据库表中的字段
- 通过两个.VCD文件 安装Sql2005
- 文件上传下载:通过java方法把附件保存到clob字段中