如何使用f.readline()在Python2.7中返回特定的行

如何使用f.readline()在Python2.7中返回特定的行,python,text-files,readlines,Python,Text Files,Readlines,我正在编写一个程序,只需要读取文本文件的一行,比如第3行,但我想不出一种方法来实现这一点。我试过了 target = open(filename) lines = target.readlines() print lines[3] 但由于某些原因,这是行不通的。如果有人能帮助我,那就太好了。Python使用基于0的索引。这意味着文件中的第一行位于行[0],第二行位于行[1],依此类推。 因此,第三行(您想要的那一行)位于行[2]而不是行[3] 例如: In [78]:

我正在编写一个程序,只需要读取文本文件的一行,比如第3行,但我想不出一种方法来实现这一点。我试过了

    target = open(filename)
    lines = target.readlines()
    print lines[3]

但由于某些原因,这是行不通的。如果有人能帮助我,那就太好了。

Python使用基于0的索引。这意味着文件中的第一行位于
行[0]
,第二行位于
行[1]
,依此类推。
因此,第三行(您想要的那一行)位于
行[2]
而不是
行[3]

例如:

In [78]: lines
Out[78]: ['line1', 'line2', 'line3', 'line4']

In [79]: lines[0]
Out[79]: 'line1'

In [80]: lines[1]
Out[80]: 'line2'

In [81]: lines[2]
Out[81]: 'line3'
如果只想在文件中累积特定行:

def readSpecificLines(filepath, lines):
    # lines is a list of line numbers that you are interested in. Feel free to start with line number 1
    lines.sort()
    i=0
    answer = []
    with open(filepath) as infile:
        fileReader = enumerate(infile, 1)
        while i<len(lines):
            nextLine = lines[i]
            lineNum, line = next(fileReader)
            if lineNum == nextLine:
                answer.append(line)
                i += 1
    return answer
def readSpecificLines(文件路径,行):
#lines是您感兴趣的行号列表。请随意从第1行开始
line.sort()
i=0
答案=[]
以打开(文件路径)作为填充:
fileReader=enumerate(填充,1)

虽然我说“出于某种原因,这是行不通的”——你能说得更具体些吗?你有索引错误吗?数据错了吗?你怎么知道这是错的?等等。事实上,我们只是在猜测问题。是的,谢谢你向我解释这一点,因为我不知道,但是我会给f.readline()什么参数让我阅读特定的行?再次感谢。@Hanson:如果不知道文件的内容,那将非常困难。不过,我已经为你的案子提出了一个小小的解决办法