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
上一篇 下一篇

猜你喜欢

热点阅读