打印找到的行数

时间:2016-04-13 15:13:08

标签: python

在这里编程的新手,并想知道是否有人可以帮助我:

我正在尝试使用一行打印或返回以下代码中找到的行数,我无法弄明白。

query = raw_input("Enter string to search for: ")
for line in open("list2.csv"):
    if query in line:
        print line,

4 个答案:

答案 0 :(得分:0)

使用这样的列表理解:

with open("list2.csv") as f:
 print(sum(query in line for line in f))  #gives number of lines found 

答案 1 :(得分:0)

这里提出了同样的问题:

How to get line count cheaply in Python?

这是线程提供的方法:

def file_len(fname):
with open(fname) as f:
    for i, l in enumerate(f):
        pass
return i + 1

搜索是你的朋友:)。

答案 2 :(得分:0)

我建议您清楚地避免使用一行!这是应该工作的东西:

query = raw_input("Enter string to search for: ")
lines = []
for line in open("list2.csv"):
    if query in line:
        lines.append(line)
        print line,
print "Number of lines:", len(lines)

如果您真的想要一行,您可以执行以下操作:

query = raw_input("Enter string to search for: ")
print "Number of lines:", len([line for line in open("list2.csv") if query in line])

答案 3 :(得分:0)

不确定这是否是最佳选择,但这是最简单的。

if语句添加一个计数器,以便每次if语句执行时增加1。

试试这个:

counter = 0
query = raw_input("Enter string to search for: ")
for line in open("list2.csv"):
    if query in line:
        print line
        counter += 1
return counter