如何允许 python 脚本更改程序文件?

How to allow a python script to make changes to program files?

当有人下载​​我的程序时,他们会得到一个 .py 文件和另一个文件。

我希望 .py 文件将另一个文件移动到那个人的 Program Files 文件夹,但我收到 Permission denied 错误。

我无法让它工作。

import os 
import glob
import shutil


files = glob.glob("Effects/*")
for f in files:
    shutil.copy(f, "C:/Program Files/Project/Output/")

错误:

PermissionError: [Errno 13] Permission denied: 'C:/Program Files/Projects/Output\Output.txt'

我正在尝试获取管理员权限。

我用的是python3.8.5

您需要以管理员身份 运行 脚本(right-click 和 运行 作为管理员)。

但是为什么要将文件放在 program files 中?如果您只想从一开始就可以访问这些文件,您可以将文件夹添加到 PATH.

如果您希望应用程序请求这些权限,您可以使用 py to exe 创建可执行文件,然后使用 windows UAC api[=13 使其请求权限=]

要编辑此目录中的文件,您必须使用管理员权限。 没有它们,您将始终收到这样的权限错误:

PermissionError: [Errno 13] Permission denied: 'C:/Program Files/Project/Output/a.txt'

要解决此问题,只需 运行 cmd 以管理员身份直接从特权命令提示符 运行 命令。

我找到了解决方案

使用 PyInstaller.py 文件转换为 .exe 文件时,使用选项

-uac=admin 

感谢@mogi