使用python搜索文件中的键值

时间:2017-03-28 17:28:43

标签: python

我是Python的新手。

场景:

  • apple = gravity在文件中搜索此模式
  • 搜索apple如果存在获取apple的相应值,
  • 如果是苹果=重力,那么案件通过。

    文件结构(test.txt)

    车=停止    绿色=   苹果=重力

请提供一些建议,告诉我如何使用Python

搜索文件中的密钥值

样品:

f = open('test.txt', 'r')
wordCheck="apple=gravity";
for line in f:
    if 'wordCheck' == line:
        print ('found')
    else:
        print ('notfound')
    break

2 个答案:

答案 0 :(得分:0)

使用=

拆分您的行

检查第一个索引中是否存在apple!如果为true,则打印第二个索引!

注意: 在从文件中读取行时,' \ n'角色将出现。要让你的行没有\n从文件中读取你的内容并使用splitlines()!

要使其清洁,请从线的开头和末尾剥去空格,以避免线条开头和结尾处的空格造成的毛刺!

即,

f = open('test.txt', 'r')
for line in map(str.strip,f.read().splitlines()):
    line = line.split('=')
    if 'apple' == line[0]:
        print line[1]
    else:
        print ('notfound')

输出:

notfound
notfound
gravity

希望它有所帮助!

答案 1 :(得分:0)

直接在文件中直接迭代,很好,被认为比readlines()(或read().splitlines()更多'Pythonic')。

在这里,我从每一行中删除换行符,然后由=拆分以获得两半。
然后,我测试检查单词,如果存在则打印出该行的另一半。

另请注意,我已使用with上下文管理器打开文件。即使发生异常,也可以确保文件已关闭。

with open('test.txt', 'r') as f:
    wordcheck="apple"
    for line in f:
        key, val = line.strip().split('=')
        if wordcheck == key:
            print (val)
        else:
            print ('notfound')