2015-09-20 57 views
-1

獲取這些值之下我在下面的格式如何在python

.aaa b/b 
.ddd e/e 
.fff h/h 
.lop m/n 

我試圖讀取該文件的文件。我希望的輸出是如果我找到「.aaa」我應該得到b/b,如果我找到「.ddd」我應該得到e/e等等。

我知道如何獲取第1列和第2列,但我不知道如何比較它們並獲取值。這是我寫的。

file = open('some_file.txt') 

for line in file: 
    fields = line.strip().split() 
    print (fields[0]) #This will give 1st column 
    print (fields[1]) # This will give 2nd column 

這不是正確的做事方式。採取什麼方法?

+2

這是一個令人困惑的問題。你是否試圖通過聲明'.aaa'後面跟着'b/b','.ddd'後面跟'e/e'等來驗證文件的內容? – Aldehir

+0

我實際上從我的python腳本中獲取了一些處理值「.ddd」。該值也存在於這個其他文件中。所以,如果這個值存在於「some_file.txt」中,我想獲得右側空格分隔的值 – kali

+0

我並不完全清楚你想完成什麼。您正在閱讀文件並打印出兩欄。你想要發生什麼? – red

回答

0

只要根據空格分隔每行,並檢查第一項是否與您輸入的單詞相匹配。如果是這樣,那麼從列表中打印第二個項目。

word = input("Enter the word to search : ") 
with open(file) as f: 
    for line in f: 
     m = line.strip().split() 
     if m[0] == word: 
      print m[1] 
1

無論何時你想做查找,字典都會成爲你的朋友。

你可以寫一個函數將數據加載到詞典:

def load_data(filename): 
    result = dict() 
    with open(filename, 'r') as f: 
     for line in f: 
      k,v = line.strip().split() # will fail if not exactly 2 fields 
      result[k] = v 
    return result 

,然後用它來執行這樣的查找:

data = load_data('foo.txt') 
print data['.aaa'] 
1

這聽起來像你可能想要的是建立一個字典映射列1到列2.你可以嘗試:

file = open('some_file.txt') 
field_dict = {} 
for line in file: 
    fields = line.strip().split() 
    field_dict[fields[0]] = fields[1] 

然後在你r其他代碼,當你看到'.ddd'時,你可以簡單地從字典中獲取引用(例如, field_dict ['。ddd']應該返回'e/e')