2014-12-04 74 views
0

有一個外部文本文件,它具有列中的信息。使用函數從文本文件中檢索特定數據。 Python 3

例如:

文本文件看起來是這樣的:

123 1 645 Kallum Chris Gardner 
143 2 763 Josh Brown Sinclar 

現在的數字 「1」 和 「2」 是十年。我需要編寫一個程序,獲取當年的輸入並打印出關於個人的其他信息。

所以我會在程序中輸入「2」,'143 2 763 Josh Brown Sinclar'會被打印出來。

到目前爲止,我得到了這樣的代碼。我如何繼續前進?

def order_name(regno, year, course, first_name, middle_name, last_name=None): 
    if not last_name: 

      last_name = middle_name 
    else: 

      first_name = first_name, middle_name 
    return (last_name, first_name,regno, course, year) 

回答

1

你可以做這樣的事情:

f = open('your_file.txt') 
lines = f.readlines() 
res = [x for x in lines if str(year) in x.split()[1]] 
print res 
+0

謝謝。此代碼很有用,因爲我稍後需要它。然而,在這種情況下,它不起作用,因爲它會專門搜索包含2.非年份列的所有內容。因此,以我發佈的示例爲例,它將打印出Josh Brown Sinclar和Kallum Chris Gardner,因爲Kallum的細節中有2個。 – bob9123 2014-12-04 17:46:59

+0

好的!您可以使用split()僅在該列上進行搜索,我已更新其代碼 – 2014-12-04 18:02:55

+0

對其進行排序,謝謝!還有一個問題(我保證)。當我打印出不同的名字是'\ n'分隔的。我環顧網上/書籍,只看到line.strip。但每次我這樣做時都會遇到錯誤。我該如何解決這個問題? – bob9123 2014-12-04 18:20:53