只有少数excel文件没有被复制到目标

时间:2017-11-07 15:43:16

标签: python python-3.x

我有一个包含586个.xls和.xlsx格式的excel文件的文件夹,然后我使用shutil并将文件传输到目标,如下面的代码。

import shutil
import glob

for filename in glob.glob('C:\\Users\\Documents\\sample_folder\\**\\**', recursive=True):
    if filename.endswith('.xlsx') or filename.endswith('.xls'):
    shutil.copy(filename,"C:\\Users\\Documents\\excel-files")

事情运作良好,398个文件成功转移到目的地,但我没有得到剩余的文件,它显示错误,如

  

文件   “C:\用户\应用程序数据\本地\程序\ Python的\ Python36-32 \ LIB \ shutil.py”   第121行,在copyfile中       使用open(dst,'wb')作为fdst:PermissionError:[Errno 13]权限被拒绝:'C:\ Users \ Documents \ excel-files \ XYZ   1310_template.xlsx'

2 个答案:

答案 0 :(得分:1)

考虑使用shutil.copyfile(src, dst)而不是shutil.copy(),因为您有权写入所有文件。如果有效,请告诉我。

否则,检查您是否有权在指定文件中写入,尝试运行没有XYZ 1310_template.xlsx文件的程序,看看这是否是唯一不起作用的文件。

documentary中可以找到更多提示  或that post早些时候问过。

答案 1 :(得分:1)

我非常肯定你的shutil。(代码的一部分不是正确的方法)。

  

你只是想复制文件名,这是一个变量而且有   中的文件名。

     

而shutil.copy(" src"," dest")是必需的src,来自源   那里没有文件名。

  shutil.copy("src"+filename,"C:\\Users\\Documents\\excel-files")