在文件中打印一定数量的行
Working with printing a certain amount of line in a file
我正在努力实现:
- 用户输入单词,它输出包含该单词的行数,最多也能看到前十行。如果没有一行有单词,那么你的程序必须输出
Not found.
到目前为止我的代码:
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
我正在努力实现:
- 用户输入单词,它输出包含该单词的行数,最多也能看到前十行。如果没有一行有单词,那么你的程序必须输出
Not found.
到目前为止我的代码:
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