任何人都可以告诉我为什么这个命令有效:
lefs = glob.glob(".\lef\*.lef")
但这不是吗?
techFiles = glob.glob(".\techfile\*.tcl")
我必须添加额外的反斜杠才能使其正常工作:
techFiles = glob.glob(".\\techfile\*.tcl")
另一行工作正常,没有额外的反斜杠.. 这些只是具有不同扩展名的简单文件。
所有文件都存在且位于正确的目录中。
答案 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路径不区分大小写......