У меня есть две вкладки-delimted большие файлы,Найти общие элементы в две строки из двух файлов
1)Bmag0905 chr7B 401656584 401656568
Bmag0905 chr7A 459876086 459876070
Bmag0904 chr2B 472060312 472060296
Bmag0904 chr2A 373596126 373596110
Bmag0904 chr7B 401656584 401656568
2)Bmag0905 chr7B 172039378 172039358
Bmag0905 chr4B 186310411 186310431
Bmag0904 chr4B 532339252 532339232
Bmag0904 chr2B 708832397 708832377
Bmag0904 chr3A 673781330 673781350
Я хочу, чтобы получить элементы, которые являются общими как в 1-й и 2-й линии. Так что мой результат будет, как это,
Bmag0905 chr7B 401656584 401656568 Bmag0905 chr7B 172039378 172039358
Bmag0904 chr2B 472060312 472060296 Bmag0904 chr2B 708832397 708832377
Итак, это то, как создать словарь, теперь вопрос в том, как найти общие элементы, как выше и печать в новом файле нужные строки? Кроме того, следует ли группировать элемент [0]?
fileA = open("input1.txt",'r')
fileB = open("input2.txt",'r')
output = open("shared",'w')
dictA = {}
for line1 in fileA:
new_list=line1.rstrip('\n').split('\t')
query=new_list[0]
subject=new_list[1]
dictA.setdefault((query), []).append(subject)
dictB = {}
for line1 in fileB:
new_list=line1.rstrip('\n').split('\t')
query=new_list[0]
subject=new_list[1]
dictB.setdefault((query), []).append(subject)
Shared ={}
for id1, value1 in dictA.items(): (?)
if id1 in dictB.keys():(?)
ИЗБЕЖАТЬ 'если id1 в dictB.keys()': 'делать, если id1 в dictB' –
Вы готовы использовать утилиту Unix/Linux, которая уже делает это, или вам нужно решение Python? –
Я предпочитаю решение python ... спасибо .. но вы можете упомянуть, какая утилита, я могу посмотреть и узнать в любом случае, и я могу найти ее более полезной – user3224522