在Windows上复制文件时出现“IOError [Errno 13] Permission denied”错误

4
我写了一个程序,将名为a.exe的文件复制到C:/Windows/,然后使用PyInstaller将其打包成exe文件,并将exe文件重命名为a.exe。当我运行exe文件时,它输出IOError [Errno 13] Permission denied: 'C:/Windows/a.exe',但是文件a.exe 已经被复制到目录C:/Windows。然后我以管理员身份运行它,但问题依然存在... 起初,我使用shutil.copy复制文件,然后自己编写了一个函数(打开a.exe,在C:/Windows下创建a.exe,读取a.exe的内容并写入C:/Windows/a.exe,最后关闭所有),但是这并没有解决问题...有什么想法吗?
3个回答

4

检查a.exe是否具有只读属性。当调用shutil.copy以覆盖已设置只读属性的现有文件时,会引发“权限被拒绝”的错误。


0

显然,您正在尝试执行将自己移动到不同位置的文件... 我想这是行不通的。


请考虑在此处发布您源代码的相关部分,否则我只能猜测您的意图。 - Johannes Charra
抱歉...我只是觉得你可以试着用几行代码来尝试一下。 - wong2

0

你能复制在Windows中打开的文件吗?我有一个模糊的记忆,你不能这样做,而且文件在执行时会保持打开状态。

它真的被复制了吗?复制之前那里不存在该文件吗?是完整地复制了整个文件吗?


是的,它被复制了,甚至可以被执行。 - wong2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接