-1

我有一个包含很多行的 .txt 文件。我希望我的程序问我要打印哪一行,然后将其打印到 python shell 中。.txt 文件称为 packages.txt。

4

3 回答 3

8

如果您不想预先读取整个文件,您可以简单地迭代直到找到行号:

with open('packages.txt') as f:
    for i, line in enumerate(f, 1):
        if i == num:
            break
print line

或者您可以使用itertools.islice()切出所需的线(这有点hacky)

with open('packages.txt') as f:
    for line in itertools.islice(f, num+1, num+2):
        print line
于 2012-05-06T04:03:59.943 回答
3

如果文件很大,使用 readlines 可能不是一个好主意,最好一个一个地阅读它们,直到你到达那里。

line_number = int(raw_input('Enter the line number: '))
with open('packages.txt') as f:
    i = 1
    for line in f:
        if i == line_number:
            break
        i += 1
    # line now holds the line 
    # (or is empty if the file is smaller than that number)
    print line

(已更新以修复代码中的错误)

于 2012-05-06T04:00:09.647 回答
0

如何使用行号引用文件的特定行?就像在 java 中,如果行号 = i 并且文件存储在 f 中,那么 f(i) 就可以了。

于 2014-03-21T09:45:07.447 回答