如何查找包含特定字符串的文件名

7
我正在尝试使用Python在目录中查找文本文件的关键字,然后找出整个文件的名称。假设这个关键字是"file",但是该目录中的文本文件名为"newfile"。我想要找出整个文件名以便能够打开它。

为什么选择Python?你听说过grep吗? - wim
3个回答

15
import os

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

2
您可以使用 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 表示在 FOLDER 的所有文件中使用 grep 查找 'word'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接