Python:列表中按某一列作為索引查詢其他列表中對應資訊,找到後插入當前列表。
直接複製,修改地址後使用。修改三個位置,如備註。
#coding=utf-8
import os.path
import numpy as np
if __name__=="__main__":
list_1_txt= open('list1.txt')#這裡,讀取第一個列表
list_2_txt= open('all.txt')#這裡,讀取第二個列表
newtxt=open('result.txt','w')#這裡,輸出修改後的。
list_1=list_1_txt.readlines()
list_2=list_2_txt.readlines()
data_list_1=[]
data_list_2=[]
data_list_3=[]
for line in list_1:
num=list(map(float,line.split()))
data_list_1.append(num)
data_list_1=np.array(data_list_1)
#print data_list_1
for line in list_2:
num=list(map(float,line.split()))
data_list_2.append(num)
data_list_2=np.array(data_list_2)
#print data_list_2
for i in data_list_1:
for j in data_list_2:
if i[0]==j[0]:
width=str((int(i[1])))
height=str((int(i[2])))
image_id=str(i[0])+'.jpg'
xmin = str((int(j[2])))
ymin = str((int(j[3])))
xmax = str((int(j[4])))
ymax = str((int(j[5])))
image_label = str((int(j[6])))
t= image_id + ',' + width + ',' + height + ',' + xmin + ',' + xmax + ',' + ymin + ',' + ymax + ',' + image_label
#print t
#print t[1]
print>>newtxt,"%s"%(t)
list_1_txt.close()
list_2_txt.close()
newtxt.close()
#函式功能:讀取txt資料為列表,對第一行數值在另一個txt內容列表的第一行進行匹配,一直則列表2對應內容插入列表1第一行後面。
#思路:1.讀取txt為列表 2.對列表1每行進行for迴圈:第一個值為索引在列表2中檢索,得到結果插入該行第一個值後,並輸出在新txt中。