linux 两个tab文件列表之间的数据库搜索
2021-12-03 本文已影响0人
纵春水东流
两个表格,分别为tab格式 file1,file2
查找file2中file1对应列,然后并输出
(1)编写脚本命令,为search.py
#! /home/x/miniconda3/bin/python
#search 命令
#search file1 file2 1 1 file1/file2 0/1/2/3/
import pandas as pd
import numpy as np
import sys
ARGV=sys.argv
ARGV[3]=int(ARGV[3])
ARGV[4]=int(ARGV[4])
res=[]
t1=pd.read_csv(ARGV[1],sep="\t").to_numpy()
t2=pd.read_csv(ARGV[2],sep="\t").to_numpy()
#print(ARGV)
#print(t1[:,ARGV[3]])
query = set(list(t1[:,ARGV[3]]))
t2=[line for line in t2 if line[ARGV[4]] in query ]
for line1 in t1:
for line2 in t2:
if line1[ARGV[3]] == line2[ARGV[4]]:
res.append("\t".join(list(line1)+list(line2)))
[print(line) for line in res]
(2)使用案列
cat file1:
a 2
b 3
c 4
cat file 2:
aa a 2
bb b 4
cc d 4
./search.py file1 file2 1 2
a 2 aa a 2
b 3 bb b 4