2017-03-11 113 views
-1

再次,我正在尋找一些assiatance,在此先感謝。此代碼具有將列表中的文件從一個文件夾移動到另一個文件夾的功能。 它給了我下面的錯誤。Python循環移動文件

import shutil 
Import os 
source='/dev/sdc /mnt/mnttensor/Dhole/' 
destination='/home/ubuntu/classificator/nodhole/' 
fo = open("dhole3.txt", "r") 
content = fo.readlines() 
for files in content: 
    shutil.move(source+files,destination+files) 

ERROR

Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
    File "/usr/lib/python2.7/shutil.py", line 302, in move 
    copy2(src, real_dst) 
    File "/usr/lib/python2.7/shutil.py", line 130, in copy2 
    copyfile(src, dst) 
    File "/usr/lib/python2.7/shutil.py", line 82, in copyfile 
    with open(src, 'rb') as fsrc: 
IOError: [Errno 2] No such file or directory: '/dev/sdc /mnt/mnttensor/Dhole/227_5267_M0423_19Oct12-IMAG0068.JPG\r\n' 

我真的很感激有這方面的幫助。

+0

「來源」是否正確?還是兩個不同的「來源」? – pekapa

+0

你的空間裏有一個空間。 – shizhz

回答

0

看錯誤的目錄:

/dev/sdc /mnt/mnttensor/Dhole/227_5267_M0423_19Oct12-IMAG0068.JPG\r\n 

通知的\r\n在文件的結尾。這是最可能導致錯誤的原因,這應該通過在for循環中使用rstrip()方法來修復,以便在shutil.move()方法嘗試查找文件時截斷特殊字符。所以for循環應該是這個樣子:

for files in content: 
    shutil.move(source + files.rstrip("\r\n"), destination + files.rstrip("\r\n")) 

還要注意在/dev/sdc目錄的空白字符 - 這可能是無意的並且可能應該被刪除。

+2

您可能想使用'.rstrip('\ r \ n')'而不是'[:-2]',因爲文件中的其他行可能不包含這些字符。 – pekapa

+0

好點。更新了答案。 – Jerrybibo

+0

你是對的......非常感謝 – Carlos