2015-11-09 3 views
7

Я новичок в программировании, это на самом деле мое первое задание с кодировкой. мой код ниже бросает ошибку:Python WindowsError: [Ошибка 123] Неверное имя файла, имени каталога или тома:

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

Я не могу найти, где проблема.

import os 

folders = ["pdcom1", "pdcom1reg", "pdcomopen"] 


for folder in folders: 
    path = r'"C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1"' 
    for file in os.listdir(path): 
     print file 
+4

Вы используете одиночные и двойные кавычки. Это может быть проблемой! – jkalden

+0

ну, вот и все! Спасибо. Добавил, что вне одной цитаты работает другое решение, и я полагаю, я забыл их удалить. – AlliDeacon

+2

Отладочный наконечник: убедитесь, что данные, которые вы передаете в функции, которые кажутся неправильными, верны. Простой 'print (path)' показал бы, что двойные кавычки являются частью значения строки. –

ответ

14

Как он решил проблему, я положил ее как ответ.

Не используйте одиночные и двойные кавычки, особенно когда вы определяете необработанную строку с r перед ней.

Правильный вызов затем

path = r"C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1" 

или

path = r'C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1' 
-1

У меня был смежным вопрос работая в Spyder, но проблема, как представляется, отношения между экранирующим символом («\») и «\» в названии пути Вот моя иллюстрация и решение (примечание single \ vs double \\):

+0

Проблема заключалась в двойных кавычках на строке. OP уже преобразовал строку в строку «r» строки raw, поэтому escape-символы не были проблемой. – DJK

Смежные вопросы