在Windows和Mac上shutil.move的不同行为

时间:2014-09-29 18:42:13

标签: shutil

尝试将文件从一个目录移动到另一个目录。在Mac上,以下工作正常。在PC上,当到达最后一个文件时,我收到错误,说它无法移动,因为它正被另一个应用程序或进程使用。但是,文件被移动(或复制)并且原始文件保留在同一位置。

import sys, os
import shutil

sourcepath="D:\Data\MP-PO-to-QB\NEWXMLS"

for filename in os.listdir(sourcepath):
    current_file=os.path.join(sourcepath, filename)
    dst="D:\Data\MP-PO-to-QB\CONVERTED"
    shutil.move(current_file, dst)

1 个答案:

答案 0 :(得分:0)

在Windows上,如果在移动文件之前先打开文件,则会收到如下错误消息:

  

PermissionError:[WinError 32]该进程无法访问文件,因为该文件正在被另一个进程使用:

您应先关闭文件,然后再移动它。