在文件中打印一定数量的行

Working with printing a certain amount of line in a file

我正在努力实现:

到目前为止我的代码:

sentences = []

with open("txt.txt") as file:
    for line in file:
        words = line.split()
        words_count += len(words)
        if len(words) > len(maxlines.split()):
            maxlines = line
        sentences.append(line)

word = input("Enter word: ")
count = 0
for line in sentences:
    if word in line:
        print(line)
        count += 1

print(count, "lines contain", word)

if count == 0:
    print("Not found.")

无论行数多少,我如何只打印前 10 行

谢谢!

如果你想迭代 10 次(旧样式,根本不是 pythonic)

index = 0
for line in file:
    if index >= 10:
        break
    # do stuff 10 times
    index += 1

不使用break,只是把东西放在条件里面。请注意,循环将继续迭代,因此这并不是一个明智的解决方案。

index = 0
for line in file:
    if index < 10:
        # do stuff 10 times
    index += 1

然而,这根本不是 pythonic。在 python 中,您应该采用的方法是使用范围。

for _ in range(10):
    # do stuff 10 times

_表示你不关心索引,只想重复10次。

如果你想遍历文件并保留索引(行号)你可以使用enumerate

for lineNumber, line in enumerate(file):
    if lineNumber >= 10:
        break
    # do stuff 10 times

最后,正如@jrd1 所建议的,您实际上可以读取所有文件,然后只切分您想要的部分,在您的情况下

sentences[:10]  # will give you the 10 first sentences (lines)

只需像这样更改您的代码,它应该会有所帮助:

for line in sentences:
    if word in line:
        if count < 10: print(line) # <--------
        count += 1