Владельцы компьютера с большим объемом накопителя испытывают много проблем. Зачастую во всем массиве данных не удается найти нужный файл, который прячется в череде папок и директорий. К счастью, существует поиск файлов в операционной системе Windows 10. Он позволяет быстро отыскать интересующую информацию. А если пользователя не устроит стандартное средство, он всегда может обратиться к поисковым программам от других разработчиков.
Привет, друзья. В этой публикации рассмотрим такой вопрос: как найти файл по содержимому. Т.е. по каким-то отдельным ключевым словам или словосочетаниям. Если вам нужно найти на своём компьютере какой-то документ или текстовый файл, при этом вы не помните его название, но вам чётко врезались в память отдельные слова или фразы с этого документа, вы найдёте этот документ. Правда, поиск в проводнике Windows для этих целей не годится, его лучше использовать только для поиска данных по ключевым фразам в названиях файлов. Для поиска по текстовому содержимому файлов необходимо прибегнуть к различным сторонним программам. И мы рассмотрим несколько таких – Total Commander, Everything, Archivarius 3000.
my_open_file = open(‘hello.txt’, ‘r’)
; в файле строки идут с абзацами:
привет
меня зовут
алексей
hello
как дела
my name
Необходимо определить используется ли слово из списка в файле и показать через print() какое слово используется
11 золотых знаков53 бронзовых знака
задан 24 окт 2022 в 12:02
Проблема решена))
Решением оказалось просто удалить ‘
‘
Может будет кому полезно:
Код:
ответ дан 24 окт 2022 в 12:31
Супер, что разобрались, несколько замечаний
ответ дан 24 окт 2022 в 13:25
Есть файл .txt . В нем записан текст. Нужно создать сигнатуру с информацией (например a=’привет’) и проверить, есть ли эта сигнатура в файле. Если да – то вывести на экран ее.
1 золотой знак5 серебряных знаков13 бронзовых знаков
задан 23 ноя 2013 в 12:09
Чтобы напечатать все строки, которые содержат заданное слово в данном текстовом файле, закодированном в utf-8 кодировке:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import io
word = u’привет’
with io.open(‘/path/to/file.txt’, encoding=’utf-8′) as file:
for line in file:
if word in line:
print(line, end=”)
ответ дан 3 апр 2015 в 22:32
11 золотых знаков107 серебряных знаков310 бронзовых знаков
создадим переменную с искомым словом:
w = ‘слово’
открываем нужный файл для чтения (при необходимости указываем полный путь к файлу):
f = open(‘test.txt’)
читаем из файла текст и присваиваем его переменной:
text = f.read()
закрываем прочтенный файл:
сохраняем кол-во вхождений слова в тексте:
c = text.count(w)
выводим слово столько раз, сколько оно присутствует в тексте:
12 серебряных знаков25 бронзовых знаков
ответ дан 6 сен 2017 в 1:10
1 бронзовый знак
Наверное как-то так.
a=’Hello’
file=open(‘/path/to/file/text.txt’,’r’)
text=file.read()
if a in text:
print a
ответ дан 26 ноя 2013 в 7:21
Можно использовать index = text.find(“искомый текст”). Даст позицию начала искомой фразы. Но такой метод дает самое первое вхождение искомой фразы. Но ведь одинаковых искомых фраз в тексте может быть несколько. Здесь вам, очевидно, стоит смотреть в сторону регулярных выражений.
ответ дан 3 апр 2015 в 6:41
4 золотых знака35 серебряных знаков49 бронзовых знаков
Недавно мы рассматривали поиск файлов через командную строку Windows. Сегодня поговорим о том, как найти внутри файлов нужный нам текст. Сделать это можно при помощи команды FIND.
Команда сообщает имена файлов, в которых был найден искомый файл, и выводит строки, в которых он содержится.
Синтаксис команды :
V — вывод всех строк, НЕ содержащих искомый текст;
C — вывод только общего числа строк, содержащих искомый текст;
N — вывод номеров строк;
I — поиск без учёта регистра символов;
Для примера проверим все текстовые файлы в каталоге C: est на наличие слова «текст».
find c: est*.txt “текст”
Если посмотреть на скриншот ниже, то можно подумать, что ни один из файлов не содержит слова «текст». Конечно, это вполне допустимый вариант. Но есть и другое объяснение.
Дело в том, что по умолчанию текст в командной строке Windows отображается согласно кодовой странице CP866, а в файлах он в кодовой странице CP1251. Поэтому нам достаточно сменить кодовую страницу в текущем окне командной строки. О том, как это сделать, можно прочитать в статье по этой ссылке.
Теперь мы видим, что слово «текст» встречается во всех трёх файлах.
Теперь посмотрим на строки, в которых нет слова «текст»:
find /v c: est*.txt “текст”
Такие оказались только в файле FILE_1. TXT.
Помните, что команда по умолчанию учитывает регистр. Поэтому, написав в ней «Текст», мы не найдём подобного слова в файлах. Но регистр можно и проигнорировать:
find /i c: est*.txt “Текст”
На скриншоте ниже хорошо видно, что сперва команда не нашла слова «Текст» в файлах, так как в них оно записано без заглавных букв. Добавив , мы это исправили.
Допустим, нам нужно знать порядковые номера строк, в которых отсутствует слово «текст»:
find /v /n c: est*.txt “текст”
Если мы захотим знать число строк, в которых присутствует искомое слово, тогда выполним команду:
find /c c: est*.txt “текст”
А если нам нужно знать число строк, где это слово отсутствует, тогда пример команды такой:
find /v /c c: est*.txt “текст”
Хотя до этого в примерах мы искали отдельное слово, спокойно ищет и выражения:
Особенностью команды является то, что искомый текст обязательно нужно заключать в кавычки. Это приводит к трудностям, если в пути к файлам (и в именах файлов) содержится пробел. В таком случае нужно воспользоваться перенаправлением ввода, но только если мы ищем в конкретном файле.
find “строка” < “c: est testile_1.txt”
Как видите, наличие пробела в имени каталога C: est test не помешало осуществить поиск. Но это что касается поиска в файле file_1.txt. А вот попытка поискать сразу во всех файлах привела к ошибке.
В таком случае можно воспользоваться циклическое обработкой, к примеру, командой :
for %a in (“c: est test”) do find %a*.txt “текст”
Помните, что в этом случае в командной строке нужно использовать конструкции вида %a, а в файлах .bat и .cmd вида %%a.
До этого в примерах мы всегда указывали в каких файлах искать. Если этого не сделать, то команда выполняет поиск в тексте консоли или в тексте, который был передан по конвейеру другой командой.
Для следующего примера вернём кодовую страницу CP866. После этого отсортируем вывод команды — оставим только те строки, где содержится слово «Состояние»:
Здесь мы лишь пробежались по вершинам, но возможности команды гораздо больше. Особенно, если использовать её в комплексе с другими командами.
Я довольно редко пользуюсь поиском в Windows, может пару раз в день, но постепенно это стало превращаться в медленный и неповоротливый ужас. Дошло до того, что поиск нужного документа в папке с 200 файлами мог доходить до 20 секунд. Про поиск через пуск по всей системе пожалуй промолчу.
Так как на просторах рунета не нашел систематизированного подхода, то опишу свои действия, которые позволили существенно увеличить скорость поиска от 20 секунд до моментального результата.
Неудачные попытки найти решение в виде сторонних программ
После недолгого гугления, лучшими вариантами я посчитал listary и everything, обе программы существенно ускоряют поиск.
Listary
Listary позволяет искать как в конкретной папке. Нужно начать писать имя файла и сразу всплывет окно. Однако тут наблюдается проблема, что окно перекрывает значительную часть элементов, в том числе найденный.
Найденный элемент перекрыт окном
Также можно искать глобально, путем двойного нажатия ctrl, инструмент похож на эпловский spotlight. Кстати, неплохо ищет стандартные приложения без каких либо calc.exe
Everything
Программа при первом запуске быстро проиндексирует все файлы, после чего поиск происходит мгновенно, даже с моим 1.4 миллионами файлов, также она отслеживает любое изменение.
Неприятный момент, что чем больше файлов на компьютере, тем больше программа жрет оперативки, в моем случае 150мб, чтобы просто висеть в фоне это как-то многовато.
Этой программой я пользуюсь когда нужно выполнить поиск по всем файлам без исключений и мгновенно, для этого она незаменима.
Удачная попытка решения
Вышеописанные программы делают свое дело и возможно они вам подойдут, если вы без моих заморочек. Но меня раздражает непродуманный интерфейс в Listary и обязанность делать лишние клики в Everything. Поэтому будет попытка приручить поиск в Windows по умолчанию.
В Windows за индексную базу данных отвечает файл Windows.edb. В обычной ситуации он должен ускорять поиск, но когда файл становится слишком большим, то все начинает сильно виснуть. В моем случае файл был 17гб и судя по запросов в интернете, это еще средний размер.
Мое решение было простым. Максимально ограничить какие файлы Windows может индексировать, чтобы при глобальном поиске через пуск их не учитывать.
Алгоритм действий
Для начала сделать так, чтобы Windows не индексировала содержимое файла в дисках, так как поиск в ней и так работает плохо, то для меня нет смысла иметь возможность искать что-то внутри файла, если сам файл нормально найти невозможно.
Далее с помощью программы WizTree проанализировать в каких папках больше всего спрятано файлов. Также какого формата файлов больше всего на диске.
Видно, что папка Windows лидировала по количеству элементов и больше всех на диске было файлов с расширение dll.
После этого в “дополнительно” можно исключить уже определенные расширения файлов из индекса, я убрал dll и еще несколько.
После всех этих манипуляций нажимаем перестроить для создания новой базы данных.
По прошествую около 15-30 минут будут проиндексированы файлы. В моем случае я сократил с ~1000000 до 64123 тысяч индексированных элементов, а размер Windows.edb уменьшился с 17гб до 385мб. Поиск же по этим 60123 файлам стал мгновенным из любого места, в том числе и пуска.
Ради интереса поставил PowerToys Run (аналог spotlight от Microsoft) и там поиск работает даже шустрее.
Рекомендую попробовать его, если в пуске вы основном ищите файлы, либо быстро открываете программы, то он делает это быстрее и удобнее.
Поиск файлов через «Средства поиска» в Windows 10
Обычно, чтобы найти нужную информацию, сохраненную на компьютере, пользователю не нужно обращаться к помощи софта от сторонних разработчиков. Всем необходимым функционалом обладает Windows 10, предлагающая владельцу ПК выполнить поиск по разным параметрам.
По названию
Это простой вид поиска, к которому чаще всего прибегают пользователи ПК на базе операционной системы Windows 10. Зная хотя бы одно слово из названия файла, его можно быстро найти на компьютере. Чтобы осуществить задуманное, понадобится:
На заметку. После запуска сканирования будет доступна вкладка «Поиск», где вы сможете выставить дополнительные параметры. Например, отображение системных данных и сжатых zip-папок.
Как только сканирование закончится, пользователь получит возможность посмотреть на результат поиска. Он представлен в виде искомых данных с указанием их расположения на жестком диске. Здесь же можно открыть файл или приложение.
По дате создания
Бывает, что пользователь одновременно не знает ни расположение файла, ни его название. В таком случае процедура поиска становится более сложной. Однако существует альтернативный метод, позволяющий найти информацию по дате создания. Поэтому, если вы помните примерную дату сохранения файла, сделайте следующее:
Также пользователь вправе выбрать точную дату, если он располагает подобной информацией. После этого начнется сканирование компьютера. Чтобы упростить процесс, рекомендуется ввести хотя бы часть названия. Тогда найти его будет намного проще, а сама процедура займет меньше времени.
По типу
Еще один способ узнать, где находится тот или иной файл, заключается в использовании поиска по типу. Ведь бывает, что человек ищет документ, который является единственным на всем пространстве компьютера. Тогда нет смысла добавлять в поиск другие типы файлов вроде папок, игр и фильмов.
Выполняется процедура по схожему с предыдущим вариантом принципу:
Сразу же начнется процесс сканирования накопителя, который завершится показом всех файлов выбранного типа. По аналогии с предыдущим методом владелец ПК может дополнить поисковый запрос частью названия, чтобы ускорить выполнение операции.
На заметку. Если вы пытаетесь найти данные с определенным расширением, то укажите его в поисковой строке. Запрос должен иметь вид типа «*.jpg», где «.jpg» – необходимый формат.
По размеру
Заключительный вариант поиска информации встроенными средствами Windows 10. Он будет полезен в ситуации, когда неизвестными остаются дата изменения, формат и название файла. Не исключено, что вы знаете примерный размер документа или приложения. Тогда стоит применить эти знания:
По умолчанию Windows 10 предлагает ограниченный выбор, который состоит из нескольких категорий файлов:
Этих вариантов недостаточно. Тем более что многие файлы имеют размер свыше 1 ГБ. Как же поступить в таком случае? Здесь на помощь вновь приходит функционал поисковой строки, где пользователю достаточно ввести запрос типа «размер: 2 ГБ». Тогда система найдет файлы, размер которых составляет именно 2 гигабайта. Разумеется, вместо указанного значения можно вставить любое другое. Главное – не ошибиться.
Через Notepad++
Еще один файловый менеджер, которым пользуются владельцы ПК на Windows 10. Поисковая строка Notepad++ позволяет искать информацию по содержимому и вызывается щелчком ЛКМ по вкладке «Поиск». Более быстрый запуск окна осуществляется нажатием клавиш «Ctrl» + «Shift» + «F».
Notepad++ предлагает широкие возможности сканирования накопителя. Поэтому в программу встроен расширенный поиск по отдельным параметрам, когда пользователь знает не название файла, а некоторые из его характеристик. Если результат окажется слишком большим (на странице Notepad++ будет показано много файлов), выполните поиск текста при помощи комбинации «Ctrl» + «F».
Как найти файл по содержимому
Друзья, к рассмотрению темы, как найти файл по содержимому, меня подтолкнула просьба о помощи одного читателя сайта:
Здравствуйте, админ. Проблема такая: срочно нужно найти файл по его содержимому среди целой кучи других похожих файлов, находящихся на жёстком диске моего компьютера. У меня на диске D находится много папок с файлами, и среди них есть текстовый файл с решением одной математической задачи. Но я помню только часть исходных данных y0= (4*2-22)/4=1, более ничего не помню. Расширение файла тоже не помню, это может быть «.txt», «.doc», «.xlsx», «.ttf» и даже «.phtml» или «.php3». Пробовал применить программу Multi Text Finder, но она ничего не нашла.
Программа Multi Text Finder, друзья, с виду вроде бы серьёзная, в ней можно выбирать типы документов для поиска, ключевые слова для поиска по содержимому документов, можно использовать маски поиска. Но, увы, это программа совершено бесполезна, найти файлы, содержащие текст, она не может. Возможно, в какой-то части случаев она и работает, но мой тест показал её полную непригодность. Я указал место поиска, ввёл ключевое слово, запустил поиск. Но поиск ничего не обнаружил.
Хотя по указанному пути документ не то, что с ключевым словом внутри, с ключевым словом в названии есть.
Увы, так бывает. Эту программу мы, друзья, отправим в топку. И давайте посмотрим на эффективные программы, которые реально помогут нам найти нужный файл, содержащий текст, какой мы помним.
Примечание: друзья, проводник Windows не ищет файлы по их внутреннему содержимому, но у него есть иные критерии поиска, с помощью которых вы можете сузить область поиска нужного вам файла. Как работать с поиском в системном проводнике, смотрите в статье «Как найти файл на компьютере».
Total Commander
Поиск файлов по ключевым словам в их тексте предусматривает функциональный файловый менеджер Total Commander. Эта программа сможет найти исчезнувший на вашем компьютере файл и по содержащемуся тексту, и по названию, и по расширению, и по дате создания, и по различным атрибутам. Ну и также у Total Commander много прочих интересных возможностей для опытных пользователей, так что если вы никогда не пользовались этим файловым менеджером, решение вашей проблемы может стать идеальным поводом для знакомства с ним и исследования прочих его возможностей.
Как найти файл по содержимому в Total Commander? На его панели инструментов есть кнопка поиска файлов, кликаем её. Или можем использовать горячие клавиши Alt+F7.
В форме поиска выбираем место поиска, можем указать весь раздел диска, на котором предположительно хранится нужный нам файл. И вводим ключевой запрос. Если мы его введём в графу «Искать файлы», поиск будет выполнен по названиям файлов. Если же мы активируем графу «С текстом» и в неё впишем ключевой запрос, то поиск будет выполняться по содержимому файлов. Что, собственно, и нужно нам. Вписываем в графу «С текстом» те слова или фразы, которые мы помним. И жмём «Начать поиск».
И далее по мере выполнения поиска на нижней панели окошка мы получим результаты поиска. И вот нам удалось найти файл, содержащий текст, который мы помним.
А вот и сам файл.
Чтобы поиск выполнялся быстрее, нужно максимально сузить его область, т.е. указать более точный путь нахождения файла. И тогда процедура поиска займёт меньше времени.
Друзья, для поиска файлов на Windows-компьютере есть специальные программы. Одна из них – бесплатная Everything. Очень простая и удобная, может работать обычно с установкой в Windows, и также может работать портативно. Ищет файлы по именам и содержимому, предусматривает расширенный поиск с разными настройками и фильтрами. Программа изначально выполняет индексацию содержимого компьютера, и благодаря этому поиск файлов выполняется мгновенно, гораздо быстрее, чем в проводнике Windows. Но индексация проводится только по именам файлов и, соответственно, мгновенный поиск возможен, если мы вводим ключевое слово в названии документа. Внутреннее содержимое файлов программа не индексирует, и, соответственно, если нам понадобится найти файлы, содержащие текст, придётся подождать, этот процесс может быть небыстрым.
Итак, программа Everything. Дабы искать в ней файлы по названиям, вводим ключевое слово из названия в поле программы в её главном окне.
Если же мы хотим найти файл, содержащий текст, в меню «Поиск» запускаем «Расширенный поиск».
Указываем ключевые слово или фразу. И желательно указать местоположение искомого файла, хотя бы примерное, хотя бы просто раздел диска. Если хотите, можете использовать другие фильтры и настройки расширенного поиска.
И, вуаля – файл найден.
FileSearchy
И ещё одну программу, друзья, рассмотрим, которая может найти файлы, содержащие текст, какой мы помним – это программа Archivarius 3000. Но это программа максимум-уровня, это суперфункциональный внутрисистемный поисковик файлов, включающий возможность поиска документов по их содержимому. И такой поиск программа выполнят мгновенно за счёт индексации содержимого указанных нами областей компьютера. Это не программа-однодневка, она платная, нужна она не всем, а только тем, кто постоянно работает с документами, у кого на компьютере хранятся большие их базы, и кому принципиально нужна оперативность и эффективность при поиске данных. Archivarius 3000 изначально индексирует указанные нами пути хранения документов, и впоследствии периодически также выполняет индексацию, чтобы в индексе всегда были актуальные сведения.
Механизм поиска у Archivarius 3000 такой, как у поисковых систем: программный поисковик ищет файлы не только с прямым вхождением наших ключевых запросов, но также с изменёнными словоформами, т.е. с разными падежами существительных и прилагательных имён, с разными временами глаголов и прочими морфологическими изменениями. И также при поиске учитывается плотность ключевых слов, а результаты поиска выстраиваются по релевантности. Друзья, программа очень серьёзная, у неё настраиваемый механизм индексации, собственный просмотрщик документов. Более того, программа даже может обеспечивать удалённый доступ к нашей базе документов по принципу сервера, и мы сможем искать файлы на нашем компьютере, будучи далеко от него, по сути, из любой точки мира. Так что в нескольких словах об этой программе не расскажешь, она достойна отдельного обзора. Покажу лишь, как пользоваться настроенной программой.
Как найти файл по содержимому с использованием Archivarius 3000? Вводим ключевой запрос, будь это слова из названия, будь это слова в тексте документа. И отсматриваем результаты поиска. Смотрим, где встречается все слова из нашего запроса.
При необходимости можем задействовать фильтры поиска – атрибуты в терминологии самой программы.
Применение Total Commander
Искать файлы можно при помощи специального ПО. Например, через менеджер Total Commander. На его главной странице располагается значок в виде лупы. Клик по нему вызывает поисковую строку. Функционал приложения позволяет искать информацию по содержанию, названию, расположению и другим параметрам.
Вызвать строку поиска можно и более простым способом. Достаточно зажать на клавиатуре «Alt» + «F7». Затем интерфейс автоматически откроется в рамках приложения, и вы сможете найти файл или массив документов любым из доступных вариантов.