我想列出当前目录中有" - "的目录。目录名称中的字符。我使用了os.listdir(path)。它给了我错误:
" WindowsError:[错误123]文件名,目录名或卷 标签语法不正确:"
非常感谢任何帮助
答案 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]