在这里编程的新手,并想知道是否有人可以帮助我:
我正在尝试使用一行打印或返回以下代码中找到的行数,我无法弄明白。
query = raw_input("Enter string to search for: ")
for line in open("list2.csv"):
if query in line:
print line,
答案 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