簡體   English   中英

Python將文件復制到文件夾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM