2011-11-14 24 views
0

文字列を検索し、その文字列が配置されている行番号を見つける方法を教えてください。[PYTHON]にある文字列の検索と行番号の検索

は、例えば

>>> findlinenb('example.txt', ['desktop', 'connection', 'processor']) 
desktop in 23 
connection in 35, 38, 35 
processor in 4, 5, 6, 8 

マイコード:

def findlinenb (filename, list): 
file = open(filename, "r") 
content = file.read() 
for i in list: 
    if content.find(i): 
     print (i, "in", content.count('\n') + 1) 

任意のアイデアや提案は大歓迎です。

ピーター

+0

単に 'グレップの-n "your_string" your_file.txt' – wim

答えて

0
words = ['desktop', 'connection', 'processor'] 
occurrences = dict((w, []) for w in words) 
with open("example.txt") as f: 
    for i, line in enumerate(f, 1): 
     for w in words: 
      if w in line: 
       occurrences[w].append(i) 
print occurrences.items() 
+0

は、あなたの迅速な対応をありがとうございました。 – user1044730

+0

@ user1044730:元のコードにはバグがありました - 今修正されました。 –