我有一个包含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'
答案 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")