如何打印已筛选结果所在的行



我试图从一个单行中包含2个单词的txt中找到一个值,第一个单词的长度必须大于10。我想把我的结果打印出来结果和我的结果所在的行。

我可以找到一个值,第一个单词是len>10,但是我无法打印我的结果所在的行号,我尝试了readline(),但它会出现类似AttributeError: 'list' object has no attribute 'readline'的错误

这是我的代码:

for line in open("birds.txt"):
a = line.strip()
word = a.split()
if len(word[0])>10:
c = word.readline()
print(a + " : " +c)

这就是您的代码的样子:
使用with作为上下文管理器,以便在操作结束时关闭打开的文件(在您的情况下,您没有关闭文件,这是一种糟糕的做法(
要同时获取索引和内容,应使用enumerate
最后,如果您使用的是python>3.6您应该使用字符串格式而不是串联,因为它更清晰,并可能提高性能。

with open("birds.txt") as f:
for index,line in enumerate(f):
words = line.strip().split()
if len(words[0])>10:
print(f'{index} : {words[0]}')

最新更新