python在路径中使用wildchar执行shell命令
如何获得python在路径中使用wildchar执行shell命令,python,regex,shell,path,Python,Regex,Shell,Path,如何获得[cc]a.txt和[cc]b.txt匹配?[bb]*中的字符[似乎没有任何意义。使用如下方法: 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'] 也为空将[和]括在[]中 狂欢节: python: test $ ls [cc]a.tx
[cc]a.txt
和[cc]b.txt
匹配?[bb]*
中的字符[
似乎没有任何意义。使用如下方法:
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']
也为空将
[
和]
括在[]
中
狂欢节:
python:
test $ ls
[cc]a.txt test.dat test.gp test.py
就全局搜索而言,[something]
意味着匹配方括号中的任何字符。因此[cc]*.txt
相当于c*.txt
,这不是您想要的
当然,更可靠的解决方案是停止使用全局字符命名文件;^)。将
[
和]
括在[]
中
狂欢节:
python:
test $ ls
[cc]a.txt test.dat test.gp test.py
就全局搜索而言,[something]
意味着匹配方括号中的任何字符。因此[cc]*.txt
相当于c*.txt
,这不是您想要的
当然,一个更可靠的解决方案是停止使用glob字符命名文件;^)。不幸的是,您不能简单地转义*,?,[,]字符。协商: fnmatch.translate的文档,这是最终得到的 打电话,说:没有办法引用元字符。对不起
正如mgilson所解释的那样,解决方案更为复杂。不幸的是,您不能简单地转义*,?,[,]字符。协商: fnmatch.translate的文档,这是最终得到的 打电话,说:没有办法引用元字符。对不起
正如mgilson所解释的,解决方案更为复杂。Nice。感谢您跟踪有关此的文档。(+1)Nice。感谢您跟踪有关此的文档。(+1)如果不使用glob.glob,如何使用其他方法可以使用示例'['匹配?@yanxinyou--我不太清楚你在问什么。如果你在寻找不同的选项,你可以使用
os.listdir
并根据手动正则表达式过滤结果……谢谢。我想使用[somethins]*匹配一些文件。然后移动它。我使用[[]替换[],和[]]移动]。很好。如果不使用glob.glob。如何使用其他方法可以使用“[”进行匹配?@yanxinyou--我不太确定你在问什么。如果你在寻找不同的选项,你可以使用os.listdir
并基于手动正则表达式过滤结果……谢谢。我想使用[somethins]*匹配一些文件。然后移动它。我使用[[]替换[,和[]]到],效果很好。
>>> glob.glob(r'[[]cc[]]*.txt') #yuck ...
['[cc]a.txt']