2016-10-11 6 views
-1

Ich möchte "Wort" in vielen Dateien in einem Ordner suchen.Suche alle Dateien in einem Ordner

Ich habe bereits:

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

Dies funktioniert nicht:

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

Ich versuchte dies:

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

aber ich habe einen Fehler:

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

Wenn ich file.txt, nächste Datei lösche, erhalte ich den gleichen Fehler.

+0

Nun, das ist nur der seltene erste Schritt. Hast du schon beim Suchen der Dateien etwas unternommen? –

+0

Was meinst du mit "es funktioniert nicht"? Was ist die Ausgabe? –

+1

Das erste Argument zu '' open() '' muss der Dateiname sein (d. H. '' File'' in Ihrem Fall), nicht der leere String '' '' ', den Sie haben. Gehen Sie danach durch die Datei und suchen Sie nach Vorkommen von '' "Wort" '' in '' line'', indem Sie etwas wie "if" Wort "in Zeile: # do something'' verwenden. – Schmuddi

Antwort

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 

So etwas wie dies, obwohl Sie Ihre Frage überhaupt nicht spezifisch ist, ob Sie zählen möchten, zurück, wo Wort gefunden wurde, ändern Wort zu etwas, etc., so fühlen sich frei, um es zu bearbeiten, wie Sie sehen, passen

(Dieser Code für .csv arbeitet wie Sie wahrscheinlich sagen kann)

-1

Sie es bereits haben meist nach unten:

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

Wie wäre es mit etwas in dieser Richtung?

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 
        ) 
Verwandte Themen