2016-12-10 120 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()獲取接受目標目錄路徑的副本。