程序文件目录中的IO

时间:2011-04-29 22:28:24

标签: python windows-7 io uac

我创建了一个程序,它通过读取来收集.txt文件中的数据,并将数据写入另一个.txt文件。但是,有一个问题。当我在正常目录中运行程序时它运行得非常好。将其放在 C:\ Program Files 目录中时会出现问题。当我运行它时,我得到 IOERROR:[Errno 13]权限被拒绝:'我的子目录'。我相信这可能是因为这个目录在编辑其中的文件时有一些额外的协议。

这是在Windows 7中,如果它还不是很明显。

如果它有所不同,程序是用Python编写的,然后用py2exe转换为.exe。

4 个答案:

答案 0 :(得分:3)

\Program Files\Windows下的所有目录以及C:\的根目录都需要Windows Vista和7(以及作为非管理用户运行时的XP)的管理员权限,这不是默认值)。你不应该首先尝试写那里。这是一项安全措施,可帮助防止恶意软件进入他们不应该访问的地方。由于Vista已经推出几年,UAC上有很多文章可供使用。您可以启动here

答案 1 :(得分:2)

最可能的原因是Windows 7中的“Program Files”目录需要管理权限才能创建子目录。

您可以以管理员身份运行python(按住Shift键,右键单击python.exe,以管理员身份运行),或写入不是Program Files的目录。

答案 2 :(得分:2)

我建议将文件夹保存在%appdata%\ my子目录中。您不需要管理员权限。

答案 3 :(得分:0)

如果要写入程序文件文件夹,则需要以管理员或已授予权限的帐户执行此程序。如果您以普通用户身份运行可执行文件,则无权访问。