我正在遍历目录,并尝试使用(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
我的理解是,转义括号可以解决该问题,但是在那里没有运气。解决此问题的最佳方法是什么?
答案 0 :(得分:0)
files_list=[]
for filename in os.listdir(r'DirPath'):
if filename.count('(0, 0, 0)'):
files_list.append(filename)
答案 1 :(得分:0)
您还需要转义空格。
尝试:*\(0,\ 0,\ 0\)*