2015-11-26 3 views
-1

Я хочу указать каталоги в текущей директории с символом «-» в имени каталогов. Я использовал os.listdir (путь). Его дает мне сообщение об ошибке:перечисление каталогов с символом «-» в именах каталогов

"WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect:"

Любая помощь будет принята с благодарностью

+0

Немного сложно ответить без образца вашего кода. См. Http://stackoverflow.com/help/mcve – pvg

ответ

0

Используйте os.listdir, чтобы получить содержимое каталога, а затем фильтровать с помощью os.path.isdir, чтобы проверить, если каждый элемент является реж:

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, но вы можете передать любую строку, представляющую папку.

Если вы ошиблись в неправильном имени файла, вы, вероятно, не экранируете его правильно или не укажете на нужную папку (абсолютная и относительная проблема пути).

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] 
Смежные вопросы