列出目录有" - "目录名称中的字符

时间:2015-11-26 04:32:20

标签: python-2.7

我想列出当前目录中有" - "的目录。目录名称中的字符。我使用了os.listdir(path)。它给了我错误:

  

" WindowsError:[错误123]文件名,目录名或卷   标签语法不正确:"

非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

使用os.listdir获取目录内容,然后使用os.path.isdir过滤以检查每个项目是否为dir:

dirs_with_hyphen = []
for thing in os.listdir(os.getcwd()):
    if os.path.isdir(thing) and '-' in thing:
        dirs_with_hyphen.append(thing)

print dirs_with_hyphen # or return, etc.

这可以使用列表理解来缩短:

dirs_with_hyphen = [thing for thing in os.listdir(os.getcwd()) if os.path.isdir(thing) and '-' in thing]

我使用os.getcwd,但您可以传入代表文件夹的任何字符串。

如果您收到有关文件名错误的错误,您可能无法正确转义或未指向正确的文件夹(绝对与相对路径问题)。

答案 1 :(得分:0)

我做了一些测试,我设法得到了你的错误。我不知道这是不是你做错了,因为没有提供任何例子。

我所做的却是提供无效的驱动路径。不是一个有效且不存在的,一个总是错误的,例如。'C::\''CC:\'任何不是'C:\'的东西。至于你的问题。

路径通常应如下所示,前缀为r以忽略反斜杠作为转义字符或双反斜杠。

import os

path = r"C:\Users\Steven\Documents\"
path = "C:\\Users\\Steven\\Documents\"

for file in os.listdir(path):
    if os.path.isdir(path+file) and '-' in file:
        print path + file

#List Comp
[path+file for file in os.listdir(path) if os.path.isdir(path+file) and '-' in file]