Задать вопрос
@maffiozi

Python — Рекурсивный поиск по строкам и файлам?

Добрый день!
У меня есть две функции:

Эта функция берет файл и переводит его в построчный вид.

def getstrings(content):
        file = open(content)
        return file.readlines()

    oneopenfile = getstrings(content)


Эта функция берет переменную с данным и циклично производит построчный поиск по данным и записывает результат в другой файл.
def search_data(oneopenfile):
        result = open((fileresult + "." + filetype), 'w')
        for i in oneopenfile:
            if i.count(searchinfo):
                result.write(i)

    search_data(oneopenfile)


Каким образом реализовать что бы тоже самое делалось не по конкретному файлу а по всем фалам в директории?

Решено: https://github.com/onixdclxvi/PyDCLXVI/blob/master...
  • Вопрос задан
  • 2212 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
LazyTalent
@LazyTalent
Data Engineer, Freelancer
for d, dirs, files in os.walk('/home/user/dir'):
	for f in files:
             getstrings(f)


или
for f in os.listdir('/home/path/dir'):
      getstrings(f)
Ответ написан
Комментировать
@maffiozi Автор вопроса
Дмитрий Евгений

в общем вот что придумал, но не работает)

Собираю имена файлов с расширением txt в файл и записываю построчно каждое имя в файл.
def filebasedir():
    filetodir = os.walk('.')
    tempfile = open('tempfilebase.txt', 'w')
    for line, dirs, files in filetodir:
        for f in files:
            if f.count(".txt"):
                tempfile.write(f+"\n")

filebasedir()


Далее пытаюсь произвести поиск обойти по очереди все файлы и все строки в них.

def search_all_data():
    result = open(("TESTRESULT.txt"), 'w')
    allopenfile = open('tempfilebase.txt', 'r')
    for linenamefile in allopenfile:
            linenamefile = open(linenamefile)
            print (linenamefile)
            dataonefile = linenamefile #.readlines()
            for data in dataonefile:
               if data.count("root"):
                   result.write(data)

search_all_data()


В итоге получаю ошибку

Traceback (most recent call last):
  File "test.py", line 34, in <module>
    search_all_data()
  File "test.py", line 27, in search_all_data
    linenamefile = open(linenamefile)
FileNotFoundError: [Errno 2] No such file or directory: '111.txt\n'


я так понимаю он не может найти файл 111.txt\n из за того что справа отступ \n?
в общем как это дело исправить? подскажите? второй день только изучаю питон
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@immaculate
Программист-путешественник
Читать документацию по функции стандартной библиотеки os.walk()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы