在Python中读取特定行的内容?

时间:2014-09-20 13:40:58

标签: python file file-io

假设我想读取文件当前行的内容并检查内容是否与输入匹配:

keyword = input("Please enter a keyword: ")
file = open('myFile.txt', encoding='utf-8')
for currentLine, line in enumerate(file):
    if currentLine%5 == 2:
        if currentLine == keyword:
            print("Match!")
        else:
            print("No match!")

显然这不起作用,因为currentLine是一个整数(当前行号),year是一个字符串。我如何获得当前行的内容? currentLine.readlines()没有用,我认为我会这样做。

1 个答案:

答案 0 :(得分:4)

您有line作为变量(表示每行的字符串)。你为什么不用它?

keyword = input("Please enter a keyword: ")
file = open('myFile.txt', encoding='utf-8')
for currentLine, line in enumerate(file):
    if currentLine % 5 == 2:
        if line.rstrip('\n') == keyword:  # <------
            print("Match!")
        else:
            print("No match!")

我使用str.rstrip('\n')因为迭代行包含换行符。

如果您想检查包含关键字的行,请改用in运算符:

if keyword in line:
    ...

BTW,enumerate的默认起始编号为0。如果您想要行号(从1开始),请明确指定:enumerate(file, 1)