AttributeError: 'str' 对象在尝试搜索字符串并打印该行时没有属性 'readline'

Arv*_*d T 1 python input readline

我试图从用户那里获取输入并从文件中搜索字符串,然后打印该行。当我尝试执行时,我不断收到此错误。我的代码是

file = open("file.txt", 'r')
data = file.read()
zinput = str(input("Enter the word you want me to search: "))
for zinput in data:
    line = data.readline()
    print (line)
Run Code Online (Sandbox Code Playgroud)

Ahs*_*que 6

您的代码中有很多地方需要改进。

  • data是一个字符串,str没有属性readline()
  • read将从文件中读取整个内容。不要这样做。
  • break一旦你找到循环zinput
  • 完成后不要忘记关闭文件。

算法其实很简单:

1)文件对象是一个可迭代的,逐行读取。

2) 如果一行包含您的zinput,请打印它。

代码:

file = open("file.txt", 'r')
zinput = str(input("Enter the word you want me to search: "))
for line in file:
    if zinput in line:
        print line
        break
file.close()
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用with使事情变得更容易和更短。它将为您关闭文件。

代码:

zinput = str(input("Enter the word you want me to search: "))
with open("file.txt", 'r') as file:
    for line in file:    
        if zinput in line:
            print line
            break
Run Code Online (Sandbox Code Playgroud)