2013-02-13 177 views
9

我正在使用python进行文件操作。窗口文件路径中的空格

我有一个文件路径为:

filepath = "E:/ABC/SEM 2/testfiles/all.txt" 
当我打开使用python的文件

,它说我:

IOError: No such file: 

但是,该文件存在于驱动器上。
这可能是因为windows无法正确地使用“SEM 2”,因为它包含空间。
如何处理窗口路径中的这些空格?

+0

你是如何打开这个文件?名字中的空格应该没有问题。 – 2013-02-13 11:11:09

+0

不难判断问题是否是空间(但我不这么认为):只需重命名该目录并查看它是否可以找到该文件 – Raffaele 2013-02-13 11:11:55

+0

它正在正确打开该文件,如果我选择了任何不存在的文件在文件夹名称中包含这些空格 – sam 2013-02-13 11:12:47

回答

8

没有与路径中的空格没有问题因为你没有使用“shell”来打开文件。这是来自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

尝试把双引号中的文件路径变量

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

检查文件或在任何情况下的权限考虑重命名的文件夹,删除空格

+0

正如gnibbler演示的那样,这不是空间,更多的引号也无济于事。 – msw 2013-02-13 11:29:16

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

关闭路径R“串”也解决了这个问题非常好。

5

该解决方案为我:“把双引号”

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

为什么当valentinos的_same answer_被拒绝投票时,这个人会得票? – 2018-02-14 20:10:48