2016-12-10 35 views
1

使用shutil.copyfile()我试着让我的第一个Python程序,将所有的文件从一个文件夹复制并粘贴到另一个:IO错误在Windows

import shutil 
shutil.copyfile("C:\Users\USER\Desktop\MoveFrom\Test.txt", 
       "C:\Users\USER\Desktop\MoveTo") 

,但我不断收到错误消息,为什么想不通:

Traceback (most recent call last): 
    File "C:\Users\USER\Desktop\Python\movefiles.py", line 2, in <module> 
    shutil.copyfile("C:\Users\USER\Desktop\MoveFrom\Test.txt", "C:\Users\USER\Desktop\MoveTo") 
    File "C:\PYTHON27\lib\shutil.py", line 83, in copyfile 
    with open(dst, 'wb') as fdst: 
IOError: [Errno 13] Permission denied: 'C:\\Users\\USER\\Desktop\\MoveTo' 

回答

2

随着shutil.copyfile(),你需要给完整的目标路径(包括新的文件名),而不仅仅是目标目录一样可以用该copy命令去做。

另外,请注意,在大多数所有语言中,反斜杠是由语言在字符串文本内特别解释的。所以你使用的路径是完全无效的。您需要在路径中使用转义反斜杠(通过在每个前面添加另一个反斜杠),或使用r前缀,它告诉Python不要专门解释反斜杠。

import shutil 
shutil.copyfile(
    r"C:\Users\USER\Desktop\MoveFrom\Test.txt", 
    r"C:\Users\USER\Desktop\MoveTo\Test.txt") 
+0

谢谢@martineau - 触摸屏有时会吸。 –

0

你需要copy()代替copyfile(),看到https://docs.python.org/2/library/shutil.html

将名为src的文件的内容(无元数据)复制到名为dst的文件中。 dst必须是完整的目标文件名;请查看shutil.copy()获取接受目标目录路径的副本。