禁用图像文件中的shutil.move

时间:2019-05-14 16:42:45

标签: python shutil

我正在尝试移动一些文件。我可以移动除.png,.jpg或.gif以外的任何扩展名类型。当我尝试移动这些类型的文件时,即使我是管理员,也会收到“ IOError:[Errno 13]权限被拒绝”。下面的代码

import os, glob, shutil
dir = r'C:\\Users\\jcan4\\Desktop\\testmove\\*'
print(dir)
files = glob.glob(dir)
files.sort(key=os.path.getmtime)


for i, file in enumerate(files, start=1):
    print(file)
    oldext = os.path.splitext(file)[1]
    shutil.move(file,  'Attachment-%s' % (i) + oldext)

1 个答案:

答案 0 :(得分:0)

首先,,您正在两次转义dir变量:

print(r'C:\\Users\\jcan4\\Desktop\\testmove\\*')
# Yields 'C:\\\\Users\\\\jcan4\\\\Desktop\\\\testmove\\\\*' !!

# What you really meant was either one of the following:
dir_harderToRead = 'C:\\Users\\jcan4\\Desktop\\testmove\\*'
dir_easyToRead = r'C:\Users\jcan4\Desktop\testmove\*'

如果仍然遇到错误,这是因为您没有授予 python脚本移动文件的权限。有几种解决方法:

Windows

(这适用于所问的问题)

  1. 具有管理权限的打开命令提示符(我看到您的文件路径,并假设您在Windows上)。 (see here

  2. 将图像的所有权更改为您。 (请参见here for windows 10here for windows 7

Linux(MacOS)

(这适用于Linux上可能存在相同问题的人)

  1. 以root权限运行python脚本:
# At command line
sudo python your_script_name.py
  1. 将文件所有权更改为您自己:
# At command line
# Changes ownership of entire directory (CAREFUL):
chmod 755 /absolute/path/to/dir
chmod 755 relative/path/to/dir

# Or you can change file by file:
chmod 755 /absolute/path/to/file
chmod 755 relative/path/to/file

有关更多信息,我在权限上使用了this site。 (如果某人的chmod数值大于755,请这样说。)