2016-09-25 4 views
0

Мне не удается открыть файл типа «Файл» в python. Этот файл существует в драйвере D.Невозможно открыть файлы дисков D, типа файла, в Python

f = os.path.join('D:\Udacity Datasets', 'maildir/bailey-s/deleted_items/101') 
g=open(f) 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
IOError: [Errno 2] No such file or directory: 'D:\\Udacity Datasets\\maildir/bailey-s/deleted_items/101' 

Однако, если тот же самый файл в диск С, то он работает отлично

f = os.path.join('C:\Users\shivanand\Documents\Udacity\Data Analyst Nanodegree\P5 - Intro to ML\ud120-projects-master', 'maildir/bailey-s/deleted_items/101') 
g = open(f) 

Я также заметил, что «TXT» файлы могут быть считаны из D приводов, т.е.

f = os.path.join('D:\Udacity Datasets', 'maildir/bailey-s/test.txt') 
g = open(f) 

хорошо работает, но выдает ошибку для файлов типа «Файл».

Может кто-то любезно указать на ошибку

+0

Выполнить 'реж "D: \ Udacity Datasets \ Maildir \ Бэйли-s \ deleted_items"' в оболочке Windows' и включают в себя выход в вашем вопросе, чтобы доказать что файл '101' действительно существует в файловой системе. –

+0

@ ŁukaszRogalski Да, он существует (также проверяется через ваш cmd), на самом деле, как я упоминал выше, если я помещаю тот же файл в каталог C и выполняю команду, все работает отлично. –

+0

Почему именно вы не включаете в себя команду и вывод, чтобы доказать нам, что это не вопрос «oops, misspelled path»? –

ответ

0

е = os.path.join ('D: \ Udacity' наборов данных, 'Maildir/Bailey-s/deleted_items/101')

Вы имеют неправильную косую черту в выделенной части. Это должно быть 'Maildir \ Бэйли-s \ deleted_items \ 101'

+0

Выполняет те же ошибки >>> f = os.path.join ('D: \ Datasets Datasets', 'maildir/bailey-s/deleted_items/101') >>> g = open (f) Traceback (самый последний вызов последнего): файл "", строка 1, в IOError: [Errno 2] нет такого файла или каталога: «D: \\ Udacity Datasets \\ Maildir/Bailey-s/deleted_items/101 ' –

+0

@ShivanandT, и у вас все еще есть неправильные косые черты, вы используете \ при первом аргументе 'join' и/во втором аргументе. Вы всегда должны использовать \ in windows. – dizballanze

+0

Я все еще получаю ту же ошибку, которую я пробовал >>> f = os.path.join ('D:/Udacity Datasets /', 'maildir/bailey-s/deleted_items/101') Я также пробовал >>> f = os.path.join ('D:/Udacity Datasets', 'maildir/bailey-s/deleted_items/101'). Возможно, проблема не в том, что все работает хорошо, если я читаю txt-файл >>> f = os.path.join ('D: \ Datasets Datasets', 'maildir/bailey-s/deleted_items/test.txt') работает отлично –

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