2013-02-13 2 views
9

Я работаю над файловыми операциями с помощью python.пробелы в пути пути к файлу

У меня есть FilePath как:

filepath = "E:/ABC/SEM 2/testfiles/all.txt" 

, когда я открываю файл с помощью Python, он говорит мне:

IOError: No such file: 

но файл присутствует на диске.
Возможно, это связано с тем, что окна не могут принимать «SEM 2» должным образом, поскольку в нем содержится место.
Как я могу справиться с такими пробелами в пути пути к окну?

+0

Как вы открываете файл? Не должно быть проблем с пространством в названии. –

+0

Нетрудно сказать, является ли проблема пространством (но я так не думаю): просто переименуйте каталог и посмотрите, может ли он найти файл – Raffaele

+0

, он правильно открывает файл, если я выбираю любой файл, который doesnt содержит такие пробелы в имени папки – sam

ответ

8

Там нет никаких проблем с пробелами в пути так как вы не используете «оболочку», чтобы открыть файл. Вот сеанс из консоли Windows, чтобы доказать это. Вы делаете что-то еще неправильно

Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on wi 
32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import os 
>>> 
>>> os.makedirs("C:/ABC/SEM 2/testfiles") 
>>> open("C:/ABC/SEM 2/testfiles/all.txt","w") 
<open file 'C:/ABC/SEM 2/testfiles/all.txt', mode 'w' at 0x0000000001D95420> 
>>> exit() 

C:\Users\Gnibbler>dir "C:\ABC\SEM 2\testfiles" 
Volume in drive C has no label. 
Volume Serial Number is 46A0-BB64 

Directory of c:\ABC\SEM 2\testfiles 

13/02/2013 10:20 PM <DIR>   . 
13/02/2013 10:20 PM <DIR>   .. 
13/02/2013 10:20 PM     0 all.txt 
       1 File(s)    0 bytes 
       2 Dir(s) 78,929,309,696 bytes free 

C:\Users\Gnibbler> 
-2

Попробуйте положить двойные кавычки в вашей FilePath переменной

"\"E:/ABC/SEM 2/testfiles/all.txt\"" 

Проверьте права доступа к файлу или в любом случае рассмотреть возможность переименование папки для удаления пространства

+0

Как продемонстрировал gnibbler, это не пространство, и больше цитат не поможет. – msw

8
path = r"C:\Users\mememe\Google Drive\Programs\Python\file.csv" 

Закрытие путь в г «строка» и решить эту проблему очень хорошо.

5

Это решение работает для меня: «положить двойные кавычки»

"\"E:/ABC/SEM 2/testfiles/all.txt\"" 
+0

Почему этот человек встает на голосование, когда проголосовали _same answer_ от valentinos? –