我正在尝试在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
无法找到来源和/或无法创建目的地。
我的第二个猜测是使用
shutil.copyfile('"' + source + '"', '"' + destination + '"')
但它又失败了。
任何提示?
修改
结果代码是
IOError: [Errno 22] Invalid argument: '"C:\Documents and Settings\Some directory\My file.txt"'
答案 0 :(得分:11)
我不认为空间是罪魁祸首。你必须在路径中转义反斜杠,如下所示:
source = 'C:\\Documents and Settings\\Some directory\\My file.txt'
或者更好的是,使用r
前缀:
source = r'C:\Documents and Settings\Some directory\My file.txt'
答案 1 :(得分:3)
Copyfile处理空间文件名。
您没有正确转义文件路径中的\。
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
表示另一个问题。我在以下场景中看到过这个错误:
答案 2 :(得分:3)
使用正斜杠或r'raw字符串'。