2012-07-16 17 views
-2

讓我們說一個txt文件包含這些行:Python的檢測缺少Line在一個txt文件

A 
    1 
    2 
    3 
B 
    1 
    2 
    3 
C 
    1 
    3 

顯然,2由C在txt文件丟失。檢測丟失的2並輸出它的想法是什麼?我需要逐行讀取txt文件。

謝謝!

+1

filehandle.'readline'功能可以幫助您 – avasal 2012-07-16 06:57:41

+4

之類的語句「顯然,2由C失蹤」讓更多的意義給人類,而不是Python解釋器。這些行代表什麼,以及爲什麼「清楚」某個部分缺少某個值? – Marius 2012-07-16 07:01:23

+0

好吧,我試圖將值1,2和3附加到列表中。這個列表會在每行讀取一個新的字母如A,B或C時被重置。我的想法是,如果當前在字母C中,附加列表的len只有2,那麼從C中缺少一個數字。 – 2012-07-16 07:08:44

回答

-1

好的我認爲這個問題不是很清楚。無論如何,這裏是我的解決方案:

我將每個部分的值追加到for循環內的列表中。例如,在部分A中,列表將包含1,2和3.C部分中列表的len將僅爲2.因此,我們知道部分C中缺少一個值。從這裏,我們可以打印出來C部分對不起,誤解。這個問題正式結束。無論如何感謝您的觀點!

0

也許你想是這樣的:

line_sets = [] 
file_names = ['a', 'b', 'c'] 

# read content of files, if you need to remember file names, use 
# dict instead of list 
for file_name in file_names: 
    with open(file_name, 'rb') as f: 
     line_sets.append(set(f.readlines())) 

# find missing lines 
missing_lines = set() 
for first_set, second_set in itertools.combinations(line_sets, 2): 
    missing_lines.add(first_set - second_set) 
print 'Missing lines: %s' % missing_lines