2016-04-13 15 views
0

新を発見し、誰もが私を助けることができればと思いまして。「私は1つの行を使用して、以下のコードで見つかった行数を印刷したり、返却しようとしている印刷数は、ここでは、プログラミングに

をし、私ができますそれを理解する。

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

はこれを試してみてください。私の答えを見てください。 – trans1st0r

答えて

0

このようなリストの内包表記を使用します。

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

ありがとう!まさに私が探していたものです。 – Exempt

+1

ほんのちょっとした提案です:リストcompがあれば、genexpを使用してください。 'sum(fの行の問い合わせ)'。 'bool'の中間リストは必要ありません –

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 

検索はあなたの友達です:)。

0

わかりやすくするために、1行だけを避けることをお勧めします。

query = raw_input("Enter string to search for: ") 
print "Number of lines:", len([line for line in open("list2.csv") if query in line]) 
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) 

:ここでは動作するはずのものです。

ifステートメントを実行するたびに+1するように、ifステートメントにカウンタを追加します。あなたはとにかくファイル全体を読み込む必要がありますが、あなたは、リストの内包表記を使用して、単一の行でそれを行うことができます

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 
関連する問題