Skip to main content
 首页 » 编程设计

python在路径中使用通配符执行shell命令

2025年05月04日14xing901022

ls  
[cc]a.txt bba.txt [cc]b.txt bbb.txt 
 
ipython 
 
glob.glob("[cc]*") 
[] 
glob.glob("bb*") 
['bba.txt','bbb.txt'] 
glob.glob("[bb]*") 
['bba.txt','bbb.txt'] 

如何让 [cc]a.txt 和 [cc]b.txt 匹配? [bb]* 中的字符[ 似乎没有意义。像这样使用:

glob.glob("\[cc\]*") 
[] 

也为NULL

请您参考如下方法:

将 [ 和 ] 包含在 [] 中。

狂欢:

test $ ls 
[cc]a.txt test.dat  test.gp   test.py 

python :

>>> glob.glob(r'[[]cc[]]*.txt') #yuck ... 
['[cc]a.txt'] 

就通配而言,[ something] 表示匹配方括号之间的任何字符。所以 [cc]*.txt 等同于 c*.txt 这不是你想要的。

当然,更稳健的解决方案是停止使用 glob 字符命名文件 ;^)。