Поиск папок и файлов: Поиск файлов и папок в программе Dropbox для компьютера — Справка Dropbox

Python поиск папок без файлов на диске

В-нулевых, никогда не используйте конструкции вида from os import *, from os.path import *! Никогда! Вы засоряете пространство глобальных символов множеством имён которых не знаете и которые рано или поздно пересекутся с именами ваших переменных и функций. Совершенно безобидный код вдруг поменяет своё поведение и вам будут гарантированы часы отладки со словами «я же тут написал как надо, почему оно не вызывается?»

Во-первых, никаких собираний результатов в список. Обход каталогов длительная операция, выдавать данные наверх нужно как только они стали доступны. Так что нужно делать генератор, который будет выдавать наверх каталог и флажок (не)пустой. Генератор пока будет рекурсивный — так проще. Если при обработке каталога встретился не каталог, то текущий каталог будет отправлен как не пустой. То же самое будет если нашёлся не пустой подкаталог.

Во-вторых, обработку ошибок надо локализовать.

Если закрывать блоками try большие куски кода вы потеряете часть информации. Например, при обработке каталога в середине проверка подкаталога ошиблась. Тогда весь хвост каталога не будет обработан.

Рекурсивная программа:

import os
import sys
def listdir(path):
    try:
        yield from os.listdir(path)
    except PermissionError:
        print(f'find-empty-dirs: ‘{path}’: Permission denied', file=sys.stderr)
def isdir(path):
    try:
        return os.path.isdir(path)
    except PermissionError:
        print(f'find-empty-dirs: ‘{path}’: Permission denied', file=sys.stderr)
        return False
def dirs(path):
    empty = True
    for name in listdir(path):
        entry = os.path.join(path, name)
        if isdir(entry):
            for e, p in dirs(entry):
                if e:
                    yield e, p
                else:
                    empty = False
        else:
            empty = False
    yield empty, path
def empty_dirs(path):
    for e, p in dirs(path):
        if e:
            yield p
def main():
    for path in sys.
argv[1:]: for d in empty_dirs(path): print(d) main()

Нерекурсивная версия рекурсивного генератор потребует явного стека, который хранит тройки [путь, (не)пусто, итератор]. Итератор двигается по каталогу с помощью вызова next(итератор, None). Признаки не пустоты обновляются при движении по каталогам и передаются наверх когда каталог кончился. Из рекурсивной программы нужно убрать функции dirs, empty_dirs и добавить эту:

def empty_dirs(root):
    stack = [[root, True, listdir(root)]]
    while stack:
        path, empty, it = stack[-1]
        name = next(it, None)
        if name is None:
            stack.pop()
            if empty:
                yield path
            else:
                if stack:
                    stack[-1][1] = False
        else:
            entry = os.path.join(path, name)
            if isdir(entry):
                stack.append([entry, True, listdir(entry)])
            else:
                stack[-1][1] = False

Подумай Для чего нужен поиск файлов и папок на компьютере? Как найти фрагмент текста в

malika26370 malika26370

  • Информатика
  • студенческий

ответ дан • проверенный экспертом

vimmortal2 vimmortal2

Ответ:

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

сэкономив время и силы.

Для поиска фрагмента текста в текстовом редакторе также можно использовать функцию нахождения содержимого. Это можно сделать несколькими способами:

  1. Включить поиск с помощью сочетания клавиш Ctrl + F.
  2. Зайти в меню «Правка» => «Найти» / «Найти далее» / «Найти ранее».

Данные процедуры откроют подобное меню, в котором можно осуществить поиск определённого набора символов по указанным параметрам.

Основное сходство в поиске файла или папки на компьютере и фрагмента текста в редакторе заключается в том, что ищется необходимый набор символов по заданным параметрам. Основные отличия таковы: в зависимости от объема поиска, он может

осуществятся с разной скоростью; поиск файлов и папок имеет более обширный набор параметров, по которым поиск облегчится в разы.

Некоторые текстовые редакторы позволяют искать некоторые текстовые значения, не заходя в сам документ (например, NotePad++). Эта функция объединяет поиск папок, файлов с поиском фрагментов текста в редакторе.

  • спасибо

  • большое

  • спасибо

  • вы мне помогли

Новые вопросы в Информатика

Срочно помогите с С++ как это сделать желательно с скриншотом. У наведеному коді перевантажте оператор “/” для ділення двох об’єктів класу coord: clas … s coord { int x,y; public: coord() { x = 0; y= 0; } coord(int i, int j) { x = i; y = j; } void get_xy(int &i, int &j) { i = x; j = y; } // . .. оголошення оператора-функції }; //… визначення оператора-функції void main() { //… оголошення об’єктів // … ділення об’єктів — виклик оператора-функції }

отдам все свой юалы за выполненую работу​

помогите сделать. пюпжпжжпжпжпжпжпжпжжп​

Срочно, помогите пожалуйста написать код на языке с ++ даю 30 б 1)Задано массив действительных чисел размерности 11. Вычислить процент положительных, … отрицательных и нулевых элементов в массиве.

С какого статуса доступно отметить ответ как лучший?​

Предыдущий

Следующий

Поиск файлов в Linux с помощью командной строки | Linode

Когда вам нужно найти файл в Linux, иногда это не так просто, как найти файл в другой операционной системе. Это особенно верно, если вы используете Linux без графического пользовательского интерфейса и должны полагаться на командную строку. В этой статье рассматриваются основы того, как найти файл в Linux с помощью CLI.

Команда find в Linux используется для поиска файла (или файлов) путем рекурсивной фильтрации объектов в файловой системе на основе простого условного механизма. Вы можете использовать 9Команда 0003 find для поиска файла или каталога в вашей файловой системе. Используя флаг -exec ( find -exec ), совпадения, которые могут быть файлами, каталогами, символическими ссылками, системными устройствами и т. д., могут быть найдены и немедленно найдены. обрабатывается одной и той же командой.

Поиск файла в Linux по имени или расширению

Используйте find из командной строки, чтобы найти определенный файл по имени или расширению. В следующем примере выполняется поиск файлов *.err в /home/username/ каталог и все подкаталоги:

 find /home/username/ -name "*.err"
 

Использование общих команд

find
и синтаксиса для поиска файла в Linux
  • Атрибут options будет управлять поведением и методом оптимизации процесса find .
  • Атрибут start/path определяет каталог верхнего уровня, где find начинает фильтрацию.
  • Атрибут выражение управляет тестами, которые выполняют поиск в иерархии каталогов для получения выходных данных.

Рассмотрим следующий пример команды:

 find -O3 -L /var/www/ -name "*.html"
 

Эта команда включает максимальный уровень оптимизации (-O3) и позволяет find следовать символическим ссылкам ( -L ). find ищет во всем дереве каталогов ниже /var/www/ файлы, оканчивающиеся на .html .

Основные примеры

Команда Описание
найти . -name testfile.txt Найти файл с именем testfile.txt в текущем и подкаталогах.
find /home -name *.jpg Найти все файлы .jpg в каталоге /home и его подкаталогах.
найти . -тип f -пустой Найти пустой файл в текущем каталоге.
find /home -user exampleuser -mtime -7 -iname ".db" Найти все .db файлов (без учета регистра), измененных за последние 7 дней пользователем с именем exampleuser.

Параметры и оптимизация для

find

Конфигурация по умолчанию для find игнорирует символические ссылки (файлы ярлыков). Если вы хотите, чтобы находил , чтобы переходить и возвращать символические ссылки, вы можете добавить -L опция команды, как показано в примере выше.

find оптимизирует свою стратегию фильтрации для повышения производительности. Три выбираемых пользователем уровня оптимизации указаны как -O1 , -O2 и -O3 . Оптимизация -O1 используется по умолчанию и заставляет найти для фильтрации на основе имени файла перед запуском всех остальных тестов.

Оптимизация на уровне -O2 отдает приоритет фильтрам имен файлов, как в -O1 , а затем запускает фильтрацию всех типов файлов, прежде чем переходить к другим более ресурсоемким условиям. Оптимизация уровня -O3 позволяет найти для выполнения наиболее серьезной оптимизации и переупорядочить все тесты в зависимости от их относительной стоимости и вероятности их успеха.

Команда Описание
-O1 (по умолчанию) фильтрация сначала по имени файла.
-O2 Сначала имя файла, затем тип файла.
-O3 Разрешить find автоматически изменять порядок поиска на основе эффективного использования ресурсов и вероятности успеха.
-maxdepth X Поиск в текущем каталоге, а также во всех подкаталогах X уровней глубины.
-iname Поиск без учета регистра.
-not Возвращает только результаты, не соответствующие тестовому набору.
-type f Поиск файлов.
-type d Поиск каталогов.

Поиск файла в Linux по времени модификации

Команда find содержит возможность фильтрации иерархии каталогов на основе времени последнего изменения файла:

 find / -name "*conf" -mtime - 7
найти /home/exampleuser/ -name "*conf" -mtime -3
 

Первая команда возвращает список всех файлов во всей файловой системе, которые заканчиваются символами conf и были изменены за последние семь дней. Вторая команда фильтрует домашний каталог пользователя exampleuser на наличие файлов, имена которых заканчиваются на символы conf и которые были изменены за предыдущие три дня.

Используйте

grep для поиска файла в Linux на основе содержимого

Команда find может фильтровать иерархию каталогов только на основе имени файла и метаданных. Если вам нужно выполнить поиск по содержимому файла, используйте такой инструмент, как группа . Рассмотрим следующий пример:

 найти . -type f -exec grep "example" '{}' \; -Распечатать
 

Это ищет каждый объект в текущей иерархии каталогов ( . ), который является файлом ( -type f ), а затем запускает команду grep "example" для каждого файла, который удовлетворяет условиям. Соответствующие файлы печатаются на экране ( -print ). Фигурные скобки ( {} ) являются заполнителем для результатов поиска . {} заключены в одинарные кавычки ( ' ), чтобы избежать передачи grep искаженного имени файла. Команда -exec завершается точкой с запятой ( ; ), которую следует экранировать ( \; ), чтобы избежать интерпретации оболочкой.

Как найти и обработать файл в Linux

Параметр -exec запускает команды для каждого объекта, который соответствует выражению поиска. Рассмотрим следующий пример:

 найти . -name "rc.conf" -exec chmod o+r '{}' \;
 

Это фильтрует каждый объект в текущей иерархии ( . ) для файлов с именем rc.conf и запускает команду chmod o+r для изменения прав доступа к файлу результатов find .

Команды, выполняемые с помощью -exec , выполняются в корневом каталоге процесса find . Используйте -execdir для выполнения указанной команды в каталоге, где находится совпадение. Это может уменьшить проблемы с безопасностью и обеспечить более желательную производительность для некоторых операций.

Параметры -exec или -execdir запускаются без дополнительных запросов. Если вы предпочитаете получать запрос перед выполнением действия, замените -exec на -ok или -execdir на -okdir .

Как найти и удалить файл в Linux

Осторожно

Будьте очень осторожны, используя это.

Чтобы удалить файлы, соответствующие вашему запросу, вы можете добавить -delete в конце выражения. Делайте это только в том случае, если вы уверены, что результаты будут соответствовать только тем файлам, которые вы хотите удалить.

В следующем примере find находит все файлы в иерархии, начиная с текущего каталога и полностью возвращаясь в дерево каталогов. В этом примере find удалит все файлы, оканчивающиеся на символы .err :

 find . -name "*.bak" -delete 

Вы можете обратиться к следующим ресурсам для получения дополнительной информации по теме. Хотя они предоставляются в надежде, что они будут полезно, обратите внимание, что мы не можем ручаться за точность или своевременность материалы внешнего размещения.

  • Страница руководства Ubuntu при поиске
  • Страница GNU при поиске

Поиск файлов и папок

Инструмент поиска Filecamp позволяет быстро искать огромное количество файлов и папок.

Поиск файлов и папок

Щелкните значок Поиск , расположенный на панели инструментов .


В окне поиска вы можете ввести все, что связано с сохраненными файлами. Нажмите Поиск  , чтобы выполнить поиск.

Обычный поиск будет глобальным поиском; все в файлах, которые связаны с тем, что было найдено, будет отображаться. Это могут быть имена файлов, описания, теги, ключевые слова, имена папок и т. д.

Параметры расширенного поиска позволяют пользователям искать активы, вводя значения для определенных атрибутов:

  • Поиск только в папке поиск элементов, содержащихся в вашей текущей папке и ниже.
  • Найти только активы с истекшим сроком действия — сузить поиск только до товаров с истекшим сроком годности.
  • Найдите файлы с меткой — сузьте область поиска только до определенных меток.
  • Ограничить поиск по измененной дате — сузить поиск до определенного периода времени.

Нажмите Поиск  , чтобы выполнить поиск.


Страница результатов поиска

На странице результатов поиска отображается список всех найденных элементов.

Вы можете нажать на переключатель просмотра   значок для переключения между просмотром галереи и просмотром списка.

Чтобы перейти к определенной записи поиска, просто дважды щелкните элемент в результатах поиска, и вы увидите файл в увеличенном предварительном просмотре.

Загрузка из результатов поиска и другие действия

Из списка результатов поиска вы можете загрузить файл, щелкнув Меню с тремя точками и выбрав Загрузить .

Если вы хотите загрузить несколько элементов, вы можете выбрать все файлы и папки, которые хотите загрузить, и выбрать   Загрузите в Панель массовых действий . Теперь будет создан ZIP-архив, и начнется процесс загрузки.

Вы также можете Поделиться , Посмотреть информацию , Изменить ярлык , Комментировать , Переместить , Копировать , Добавить в коллекцию прямо со страницы результатов и удалить файлы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *