我需要線兩個文件結合起來,在基礎條件,在這些文件中的一個線是第二檔的線的一部分。如何將兩個文件中的行與python中的條件結合起來?
的第一個文件的一部分:
12319000 -64,7357668067227 -0,1111052148685535 12319000 -79,68527661064425 -0,13231739777754026 12319000 -94,69642857142858 -0,15117839559513543 12319000 -109,59301470588237 -0,18277783185642743 12319001 99,70264355742297 0,48329515727315125 12319001 84,61113445378152 0,4060446341409862 12319001 69,7032037815126 0,29803063228455073 12319001 54,93886554621849 0,20958105041136763 12319001 39,937394957983194 0,13623056582981297 12319001 25,05574229691877 0,07748669438398018 12319001 9,99716386554622 0,028110643107892755
第二個文件的一部分:
12319000.abf mutant 1 12319001.abf mutant 2 12319002.abf mutant 3
我需要創建一個文件,其中將生產線由這樣的:從所有線路第一個文件和第二個文件的所有內容。第一列中的文件名除外。
正如你可以看到,有更多的,比第一文件中的一行,cooresponding在第二個行。我需要一個操作中,每個行來完成,所以輸出應該是這樣的:
12319000 -94,69642857142858 -0,15117839559513543 mutant 1 12319000 -109,59301470588237 -0,18277783185642743 mutant 1 12319001 99,70264355742297 0,48329515727315125 mutant 2 12319001 84,61113445378152 0,4060446341409862 mutant 2
我寫這段代碼:
oocytes = open(file_with_oocytes, 'r')
results = open(os.path.join(path, 'results.csv'), 'r')
results_new = open(os.path.join(path, 'results_with_oocytes.csv'), 'w')
for line in results:
for lines in oocytes:
if lines[0:7] in line:
print line + lines[12:]
但它打印出這一點,僅此而已,第一個文件中有45行:
12319000 99,4952380952381 0,3011778623990699 mutant 1 12319000 99,4952380952381 0,3011778623990699 mutant 2 12319000 99,4952380952381 0,3011778623990699 mutant 3
代碼有什麼問題? 或者它應該以某種方式完全不同?
+1包含您嘗試的代碼 – bernie 2012-03-30 21:26:30
第一列的文件是否按順序排列?可靠嗎? – MattH 2012-03-30 21:32:14
文件「小」嗎?也就是說,他們可以一次讀入並保存在記憶中嗎? – 2012-03-30 21:33:47