不一致glob.glob结果
问题描述:
谁能告诉我为什么这个命令的工作:不一致glob.glob结果
lefs = glob.glob(".\lef\*.lef")
但这并不?
techFiles = glob.glob(".\techfile\*.tcl")
我必须添加额外的反斜线,以便为它工作:
techFiles = glob.glob(".\\techfile\*.tcl")
的其他线路工作正常,没有额外的反斜杠.. 这些只是用不同的扩展名的简单文件。
所有文件存在并位于正确的目录中。
答
在techFiles = glob.glob(".\techfile\*.tcl")
,\t
被解释为一个制表字符(其他“有问题字符是\b
,\v
,\a
,\x
,\b
,\f
,\U
,\
后面跟着一个数字,...我可能会忘记一些)
所以路径是无效的,glob.glob
回报什么。
你的其他路径包含\l
和\*
不对应任何逃生sequenc e,所以它没有被解释和种类的作品。
传递字符串文字与Windows路径,始终使用原始的前缀,它比逃避每个反斜线简单:
techFiles = glob.glob(r".\techfile\*.tcl")
稍微偏离主题:有很多的代码示例这里有大写的目录名:恩glob.glob(".\Techfile\Backlog\*.tcl")
,我总是想知道这是否仅仅是运气,或者如果大多数人仍然没有得到这个\t
的问题,并通过大写找到解决方法,因为Windows路径是不区分大小写的...
'\ t'是选项卡所以glob的字符没有什么可扫描的。 –
如果不想反斜杠有任何特殊含义,请使用'r'''。 –
谢谢你们!我知道了。 – Icee