Как открыть все .txt и .log файлы в текущем каталоге, выполнить поиск и распечатать файл, в котором был найден поиск - PullRequest
7 голосов
/ 26 апреля 2011

Я пытаюсь найти строку во всех текстовых файлах и файлах журнала в текущем каталоге.И если он находит совпадение, распечатайте текст или файл журнала, где совпадение было найдено.Возможно ли это, и как я могу манипулировать приведенным ниже кодом для выполнения этой задачи?

  fiLe = open(logfile, "r")
  userString = raw_input("Enter a string name to search: ")
  for line in fiLe.readlines():
      if userString in line:
         print line

Ответы [ 3 ]

18 голосов
/ 26 апреля 2011

Примерно так:

import os
directory = os.path.join("c:\\","path")
for root,dirs,files in os.walk(directory):
    for file in files:
       if file.endswith(".log") or file.endswith(".txt"):
           f=open(file, 'r')
           for line in f:
              if userstring in line:
                 print "file: " + os.path.join(root,file)             
                 break
           f.close()
3 голосов
/ 18 ноября 2014

Он попросил плоский readdir, а не рекурсивную прогулку по дереву файлов. os.listdir () выполняет работу.

2 голосов
/ 26 апреля 2011

У вас есть , чтобы сделать это на Python?В противном случае просто grep -l "string" *.txt *.log будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...