2015-09-20 51 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')