我需要线两个文件结合起来,在基础条件,在这些文件中的一个线是第二档的线的一部分。如何将两个文件中的行与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