当目录名称中有空格时如何使用copyfile?

我想在Windows下执行一个简单的文件复制任务,我有一些问题。

我的第一个尝试是使用

import shutils source = 'C:\Documents and Settings\Some directory\My file.txt' destination = 'C:\Documents and Settings\Some other directory\Copy.txt' shutil.copyfile(source, destination) 

copyfile找不到源和/或无法创build目标。

我的第二个猜测是使用

 shutil.copyfile('"' + source + '"', '"' + destination + '"') 

但是它又失败了。

任何提示?


编辑

结果代码是

 IOError: [Errno 22] Invalid argument: '"C:\Documents and Settings\Some directory\My file.txt"' 

Solutions Collecting From Web of "当目录名称中有空格时如何使用copyfile?"

我不认为空间是责任。 你必须像路径一样在路径中跳出反斜杠:

 source = 'C:\\Documents and Settings\\Some directory\\My file.txt' 

或者,甚至更好地使用r前缀:

 source = r'C:\Documents and Settings\Some directory\My file.txt' 

使用正斜杠或r'raw字符串“。

复制文件处理空间文件名。

您不能正确地在文件路径中转义\

 import shutils source = 'C:\\Documents and Settings\\Some directory\\My file.txt' destination = 'C:\\Documents and Settings\\Some other directory\\Copy.txt' shutil.copyfile(source, destination) 

为了说明,尝试运行这个:

 print 'Incorrect: C:\Test\Derp.txt' print 'Correct : C:\\Test\\Derp.txt' 

看来还有其他问题。 Errno 22表示另一个问题。 我在以下场景中看到了这个错误:

  • 源文件或目标文件正在被另一个进程使用。
  • 文件路径包含奇特的Unicode字符。
  • 其他访问问题。