glob.glob结果不一致

时间:2017-08-02 20:58:59

标签: python file-io filesystems glob

任何人都可以告诉我为什么这个命令有效:

lefs = glob.glob(".\lef\*.lef")

但这不是吗?

techFiles = glob.glob(".\techfile\*.tcl")

我必须添加额外的反斜杠才能使其正常工作:

techFiles = glob.glob(".\\techfile\*.tcl")

另一行工作正常,没有额外的反斜杠.. 这些只是具有不同扩展名的简单文件。

所有文件都存在且位于正确的目录中。

1 个答案:

答案 0 :(得分:0)

techFiles = glob.glob(".\techfile\*.tcl")中的

\t被解释为制表字符(其他"有问题的字符为\b\v\a,{{ 1}},\x\b\f\U后面跟一个数字,...我可能会忘记一些)

因此路径无效,\不返回任何内容。

您的其他路径包含glob.glob\l,它们与任何转义序列都不对应,因此不会被解释且有效。

要将字符串文字作为Windows路径传递,请始终使用原始前缀,这比转义每个反斜杠更简单:

\*

稍微偏离主题:这里有许多代码示例,大写目录名称:ex techFiles = glob.glob(r".\techfile\*.tcl") ,我总是想知道这只是运气,还是大多数人还没有得到此glob.glob(".\Techfile\Backlog\*.tcl")问题并通过大写找到解决方法,因为Windows路径不区分大小写......