【发布时间】:2019-09-03 04:49:00
【问题描述】:
我想用 python 将内容写入文件。文件的位置在根目录路径:/etc/hosts
以下是文件权限
-rw-r--r-- 1 root root
我想更新这个文件,只能用 sudo 更新。所以我写了以下脚本:
path = "/etc/hosts"
fr = open(path,'r')
b = fr.read()
b = b+'something to write'
fr.close()
fw = open(path,'w')
fw = os.system('echo %s|sudo -S python %s' % ('root', fw.write(b)))
但我收到权限被拒绝错误:
IOError: [Errno 13] Permission denied: u'/etc/hosts'
我也尝试过使用子进程:
os.popen("sudo -S %s"%(open(path,'w')), 'w').write(admin_password)
但这又没用。
我该如何解决这个问题?
【问题讨论】:
-
你应该像
sudo python myscript.py一样使用sudo运行python脚本 -
您在尝试阅读时已经收到权限错误。
-
我的整个代码都在同一个文件中,我没有用终端执行这个:)
-
@Dschoni 没有文件读取成功但没有写入。
标签: python file subprocess sudo