[英]Python copy files to folder
我正在嘗試將文件從一個文件夾復制到另一個文件夾(不知道文件的名稱)
但是,它不起作用,我似乎無法理解為什么。 下面是代碼和錯誤代碼:
#!/usr/bin/python
import sys, os, time, shutil
path = '/home/images/'
files = os.listdir(path)
files.sort()
for f in files:
src = path+f
dst = '/USB/images/' +f
shutil.move(src, dst)
而錯誤:
Traceback (most recent call last):
File "copy.py", line 10, in <module>
shutil.move(dst, src)
File "/usr/lib/python2.7/shutil.py", line 301, 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: '/USB/images/26-07-2015-18:06:22-01.jpg'
任何人都可以幫助我朝正確的方向發展嗎? 謝謝!
代碼和錯誤消息似乎並不相互吻合。
代碼暗示你正在打電話
shutil.move(src, dst)
但錯誤表明你正在打電話
shutil.move(dst, src)
如果您正在執行后者,那么如果/USB/images/26-07-2015-18:06:22-01.jpg
尚不存在,則顯然錯誤消息是有意義的。
您可能還無法使用:
文件名中的字符。 FAT(或派生)文件系統在(通常較小的)USB設備上是常見的。 該文件系統類型不允許文件名中的以下任何字符: "/\\*?<>|:
.
它應該是:
shutil.move(dst, src)
看起來您的目的地目錄不可寫或不存在? 當你做ls -l /USB/images
時你看到了什么?
順便說一句,我以為你想復制? shutil.move將移動文件,而不是復制。
編輯:目標VFAT需要特殊的文件轉換
這個怎么樣:
#!/usr/bin/python
import sys, os, time, shutil
path = '/home/images/'
files = os.listdir(path)
files.sort()
for f in files:
f_dst = f.replace(':','_')
src os.path.join(path, f)
dst = os.path.join('/USB/images/', f_dst)
shutil.move(src, dst)
使用OS無關的函數os.path.join()有效地將文件名連接到文件夾路徑。
#!/usr/bin/python
import sys, os, time, shutil
path = '/home/images/'
files = os.listdir(path)
files.sort()
for f in files:
src = os.path.join(path, f)
dst = os.path.join('/USB/images/', f)
shutil.move(src, dst)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.