带有括号和逗号的Python fnmatch

我正在遍历一个目录,并尝试(0, 0, 0)使用fnmatch.fnmatch(filename,'*(0, 0, 0)*'). 看起来括号和逗号正在抛弃它,并匹配像(0, 1, 1)我不想要的字符串。


相关代码段是:


for root, dirs, files in os.walk(data_dir):

    for file in files:

        filename = os.path.join(root, file)

        if fnmatch.fnmatch(filename,'*\(0, 0, 0\)*'):

            # do stuff

目录包含以下文件:


\c_(0, 0, 0)\data.txt

\c_(0, 05, 05)\data.txt

\c_(0, 05, 1)\data.txt

\c_(0, 1, 0)\data.txt

我的理解是转义括号应该可以解决它,但没有运气。解决此问题的最佳方法是什么?


千万里不及你
浏览 189回答 2
2回答

慕码人8056858

files_list=[]for filename in os.listdir(r'DirPath'):    if filename.count('(0, 0, 0)'):        files_list.append(filename)

开心每一天1111

您还需要避开空间。试试这个 : *\(0,\ 0,\ 0\)*
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python