【问题标题】:IO within the Program Files Directory程序文件目录中的 IO
【发布时间】:2011-08-15 19:58:55
【问题描述】:
我制作了一个程序,它既可以通过读取 .txt 文件来收集数据,又可以将数据写入不同的 .txt 文件。但是,有一个问题。当我在普通目录中运行程序时,它运行得非常好。当我将它放在 C:\Program Files 目录时出现问题。当我运行它时,我得到 IOERROR: [Errno 13] Permission denied: 'my subdirectory'。我相信这可能是由于该目录在编辑其中的文件时具有一些额外的协议。
这是在 Windows 7 中,如果它还不是很明显的话。
此外,如果它有所不同,程序是用 Python 编写的,然后使用 py2exe 转换为 .exe。
【问题讨论】:
标签:
python
windows-7
io
uac
【解决方案1】:
如果要写入程序文件夹,您需要以管理员身份或您已授予权限的帐户执行此程序。如果您以普通用户身份运行可执行文件,您将无权访问。
【解决方案2】:
最可能的原因是 Windows 7 中的“程序文件”目录需要管理权限才能创建子目录。
您可以以管理员身份运行 python(按住 shift,右键单击 python.exe,以管理员身份运行),或写入不是 Program Files 的目录。
【解决方案3】:
\Program Files 和 \Windows 下的所有目录,以及C:\ 的根目录,在 Windows Vista 和 7(以及 XP,当以非管理员用户身份运行时,这不是默认设置时)都需要管理员权限)。你不应该一开始就在那里写。这是一种安全措施,可帮助防止恶意软件到达不应到达的地方。由于 Vista 已经推出好几年了,UAC 上有很多文章可用。你可以开始here。
【解决方案4】:
我建议将文件夹保存在 %appdata%\my 子目录中。您不需要管理员权限。