python - 在外部文本文件中查找字符串所在的行号

标签 python file text external

我正在尝试创建一个程序,它从用户输入的字符串中获取输入并在文本文件中搜索该字符串并打印出行号。如果该字符串不在文本文件中,它将打印出来。我该怎么做?此外,我不确定我目前使用的 for 循环是否适用于此,所以任何建议/帮助都会很棒 :)。

我目前拥有的:

file = open('test.txt', 'r')
string = input("Enter string to search")
for string in file:
    print("") #print the line number

最佳答案

你可以实现这个算法:

  • 初始化一个计数器
  • 逐行阅读
  • 如果行与目标匹配,则返回当前计数
  • 增加计数
  • 如果到达末尾没有返回,则该行不在文件中

例如:

def find_line(path, target):
    with open(path) as fh:
        count = 1
        for line in fh:
            if line.strip() == target:
                return count
            count += 1

    return 0

关于python - 在外部文本文件中查找字符串所在的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47189680/

相关文章:

python - 是否可以使用装饰器在 Python 中进行 "extended"时间监控?

Python all() 方法

python - 最安全的加密算法

python - 生成奇数列表时出现内存错误

algorithm - 如何计算边界矩形的宽度,以适应特定比例的文本包装?

python - 避免在 Python 中部分写入文件

linux - 有组权限但无法访问文件?

python - 文件操作 : Scripting Question

android - 使用卫星与 Android 手机进行双向通信

ruby - Ruby 中基于特定文本的存在触发方法的算法