1
我有兩個製表符分隔的文件,我需要測試第一個文件中的每一行對其他文件中的所有行。例如,輸出總是給最後一行或所有行
文件1:
row1 c1 36 345 A
row2 c3 36 9949 B
row3 c4 36 858 C
文件2:
row1 c1 3455 3800
row2 c3 6784 7843
row3 c3 10564 99302
row4 c5 1405 1563
比方說,我想輸出(文件1)對於這山坳[3]文件1的小於所有行考慮到col [1]是相同的,file2的任何(不是每個)col [2]。
預期輸出:
row1 c1 36 345 A
row2 c3 36 9949 B
因爲我在Ubuntu的工作,我想輸入的命令是這樣的: 蟒蛇code.py [文件1] [文件2]> [輸出]
我寫了下面的代碼:
import sys
filename1 = sys.argv[1]
filename2 = sys.argv[2]
file1 = open(filename1, 'r')
done = False
for x in file1.readlines():
col = x.strip().split()
file2 = open(filename2, 'r')
for y in file2.readlines():
col2 = y.strip().split()
if col[1] == col2[1] and col[3] < col2[2]:
done = True
break
else: continue
print x
然而,輸出結果如下:
row2 c3 36 9949 B
基本上我總是隻得到嵌套循環中條件爲真的最後一行。我嘗試這樣做,而不是:
if done == True: print x
(有一個缺口),但現在,它打印中的所有行文件1,無論在之前的循環測試的條件。 (> _ <)