向Windows主机文件添加行:权限错误:[Errno 13]权限被拒绝

2024-09-28 23:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过Python在Windows hosts文件中添加一行代码:

fh = open("C:\Windows\System32\drivers\etc\hello.txt", "w")
fh.write("new line")
fh.close()

但我有个错误:

PermissionError: [Errno 13] Permission denied: 'C:\\Windows\\System32\\drivers\\etc\\hello.txt'

即使我的防病毒程序被禁用,它也不起作用。

我不知道如何在Windows机器上以管理员的身份编写文件。


Tags: 文件代码txthellonewclosewindowsline
3条回答

这个问题是针对Windows的,但我想我会给Linux一个答案,因为未来的读者可能会在Linux上。

如果您在/etc/sudoers文件中有足够的权限,则可以使用sudo。

sudo python myscript.py

系统将提示您输入密码。

您需要做的是使用提升的权限运行Python脚本。

请参阅this questionthis one以执行此操作。

您需要以管理员身份运行Python,然后它可以在通常受保护的目录中写入文件。

像这样的命令

runas.exe /user:administrator "C:\Python34\python.exe myscript.py"

(为实际的Python安装和脚本路径编辑)应该可以工作。您仍然需要提供密码。

另外,您应该为Windows路径名使用原始字符串-幸运的是,没有反斜杠在可转义字符之前:

fh = open(r"C:\Windows\System32\drivers\etc\hello.txt", "a") # add, not overwrite

相关问题 更多 >