最近在学习Python,将此语言运用到实践操作中,刚好想利用这个还比较生疏的语言提取两个文件中相同样本信息,A文件格式如下:
B文件格式如下:
基本思路:先读取A、B文件,分别存在列表A_list、B_list中,逐一取出A_list中的数据项,检查是否在B_list中,若在则加入最终的列表C_list中。
第一步:先从A.info.txt、B.risk.txt中提取Sample ID,然后赋给列表A_list、B_list;
with open(inputfile1,"r") as rf:
for line in rf:
id=line.split('\t').pop(0)
A_list.append(id)
#print A_list
第二步:逐一取出_list中的数据项,检查是否在B_list中,若在则加入最终的Sample_id:
Same_id=[]
for id in A_list:
if id in B_list:
Same_id.append(id)
亮点是“if id in B_list:”我们可以用这样简洁的语句实现查询。
完整代码如下:
#!/usr/bin/python
# Filename : GetSameSample.py
import sys
import os
inputfile1 = sys.argv[1]
inputfile2 = sys.argv[2]
A_list=[]# get every the whole ids from A_list and B_list,
with open(inputfile1,"r") as rf:
for line in rf:
id=line.split('\t').pop(0)
A_list.append(id)
#print A_list
B_list=[]
with open(inputfile2,"r") as rf:
for line in rf:
id=line.split('\t').pop(0)
B_list.append(id)
#print B_list
Sample_id=[]# check every id in A_list, to find that wheather is
for id in A_list:
if id in B_list:
Sample_id.append(id)
#print Sample_id
for id in Sample_id:
print id
领取专属 10元无门槛券
私享最新 技术干货