2016-10-11 11 views
-1

フォルダ内の多くのファイルで「単語」を検索したい。フォルダ内のすべてのファイルを検索する

私は既に持っている:

route=os.listdir("/home/new") 
for file in route: 

これは動作しません:

f = open ('' , 'r') 
for line in f : 

私はこの試みた:

for file in route: 
    f = open(file, 'r') 
    for line in f: 
     if word in line: 
      print(file) 
      break 

をしかし、私はエラーを持っている:

f=open(file ,'r') 
IOError: [Errno 2] No such file or directory: file.txt 

次のファイルfile.txtを削除すると、同じエラーが表示されます。

+0

これはほんのまれな第一歩です。あなたは実際にファイルの部分を検索して何かしましたか? –

+0

"それはうまくいかない"とはどういう意味ですか?出力は何ですか? –

+1

'' open() ''への最初の引数は空の文字列 '' '' ''ではなく、ファイル名(あなたの場合は '' file'')でなければなりません。その後、ファイルを調べて、 ''行中の '' if word "のようなものを使って' '' '' 'の出現を' '行' 'で検索します。 – Schmuddi

答えて

0
for file in filelist:  
    f = open(file,"r") 
    data = f.read() 
    rows = data.split("\n") 
    count = 0 
    full_data = [] 
    for row in rows: 
     split_row = row.split(",") 
     full_data.append(split_row) 
    for each in full_data: 
     if re.search("word", each) is not None: 
      count += 1 

このような何か、あなたの質問はあなたがカウントするかどうかについては全く具体的ではないが、その他はそうあなたが

合うように編集すること自由に感じ、何かに変更単語、単語が見つかった場所を返します

(あなたはおそらく言うことができるようにこのコードは.CSVのために働く)

-1

あなたは既にほとんどがそれを持っている:

for file in route: 
    f = open(file, 'r') 
    for line in f: 
     if word in line: 
      print(file) 
      break 
0

これらの行はどうですか?

import os 

folderpath = "/.../.../foldertosearch" 
word = 'giraffe' 

for(path, dirs, files) in os.walk(folderpath, topdown=True): 
    for filename in files: 
     filepath = os.path.join(path, filename) 
     with open(filepath, 'r') as currentfile: 
      for line in currentfile: 
       if word in line: 
        print(
         'Found the word in ' + filename + ' in line ' + 
         line 
        )