如何在文本文件中搜索特定列以获取用户输入

时间:2018-06-19 03:30:01

标签: python python-3.x

我希望能够向用户询问他们想要在特定列中搜索的字符串。它是制表符分隔文本文件中的第二列,查找并打印该列中出现的每个实例。

我希望用户能够只输入项目的片段,无论是大写还是小写,并获取完整的项目。在这种情况下,第二列包含作者列表,我希望用户能够搜索作者并返回作者的姓名和他们写的书的名称,这是在同一行,但是在第一列。

def file_search():
    userInput = input('Enter a string: ')
    lowerInput = userInput.lower()
    f=open('file.txt','r')
    lowerInput=f.readlines()
    result=[]
    for x in lowerInput:
        result.append(x.split(' ')[1])
    f.close()

这是我尝试过但我的'列表索引超出范围' 一行看起来像

A Widow For One Year    John Irving     Random House    6/14/1998   Fiction
Accident    Danielle Steel  Delacorte   2/27/1994   Fiction
Acheron     Sherrilyn Kenyon    St. Martin's    8/24/2008   Fiction
Advise and Consent      Allen Drury    Doubleday    10/4/1959   Fiction
Against All Enemies    Tom Clancy   Putnam   7/3/2011   Fiction
Airframe    Michael Crichton    Knopf   12/29/1996  Fiction
Airport    Arthur Hailey    Doubleday   4/7/1968    Fiction

1 个答案:

答案 0 :(得分:0)

我已经修改了你的代码,但它绝对应该让你去。例如,如果您输入" john"你会找到关于他工作的一切。

def file_search():
    userInput = input('Enter a string: ').lower()
    result = []
    with open("file.txt", 'r') as f:
        for x in f:
            if userInput in x.lower():
                result.append(x.split('   '))

    for s in result:
        print(s[1] + " has written: "+ s[0])

file_search()