【发布时间】:2018-05-15 02:30:06
【问题描述】:
在我的代码中,我创建了一个这样的目录:
try:
os.makedirs(playlist_name)
except OSError as e:
if e.errno != errno.EEXIST:
raise
这会在我运行 python 脚本的地方创建一个目录。 然后我希望将文件夹所在的原始目录中的三个文件复制到新创建的目录中,像这样
# Copy FFMPEG files into that folder so youtube dl can download the videos as audio tracks
# Tried using os.getcwd() to get full path, same error
shutil.copyfile(os.getcwd() + '\\ffmpeg.exe', os.getcwd() + "\\" + playlist_name)
shutil.copyfile('ffplay.exe', "/" + playlist_name + "/")
shutil.copyfile('ffprobe.exe', "/" + playlist_name + "/")
但是,尝试复制这些文件会引发此错误:
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\ME\\Documents\\python\\DIRECTORY\\PLAYLIST_NAME_HERE'
我尝试了各种shutil复制方法,都出现同样的错误。
编辑:这是在 Windows 上运行的
【问题讨论】:
-
错误告诉你问题出在哪里,确保你有权限,使用执行脚本的帐户,可能是你的用户。
-
@user1767754:实际上并不是经典模型“你有写权限”的权限错误;当您尝试用文件覆盖目录或像打开文件一样打开目录进行写入时,Windows 会使用该错误代码(或在其他情况下为
EPERM,但仍然是 PythonPermissionError),这种情况下的问题,因为你没有“被允许”这样做。EISDIR(PythonIsADirectoryError) 是你所期望的,但 Windows 使用EACCES/EPERM因为他们非常讨厌你。
标签: python windows permissions shutil file-copying