2015-11-16 2 views
-1

Я пытаюсь найти ключевое слово текстового файла в каталоге, а затем узнать все имя файла с помощью Python.Как найти имя файла, которое содержит заданную строку

Пусть это ключевое слово будет 'file', но этот текстовый файл в каталоге называется 'newfile'.

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

+0

Почему питона? Вы когда-нибудь слышали о grep? – wim

ответ

3
import os 

keyword = 'file' 
for fname in os.listdir('directory/with/files'): 
    if keyword in fname: 
     print(fname, "has the keyword") 
0

Вы можете использовать fnmatch. Из документации:

Этот пример напечатает имена всех файлов в текущем каталоге с расширением .txt:

import fnmatch 
import os 

for filename in os.listdir('.'): 
    if fnmatch.fnmatch(filename, '*.txt'): 
     print filename 

Из вашего примера вы хотите fnmatch(filename, '*file*').

например:

>>> from fnmatch import fnmatch 
>>> fnmatch('newfile', '*file*') 
True 

>>> fnmatch('newfoal', '*file*') 
False 
-1

Использование Grep вы можете найти файл, содержащий слово, которое вы ищете.

grep -r 'word' FOLDER 

-r указывает Grep искать 'word' во всех файлах FOLDER

Смежные вопросы