我想用Python Subprocess编辑intel_backlight文件夹中的亮度文件来改变亮度。
不能用sudo priv运行脚本。
已经尝试了大部分的方法,但仍然没有成功......你能不能帮我一下,我到底哪里出了问题。
尝试了以下方法。
用xbacklight包不工作.
用xrandr颜色变暗,但没有亮度。
改变文件的值(在shell中用sudo工作,但想通过python用sudo调用python文件)。
command = "sudo echo " + "'" + str(new_brightness_level) + "'" + ">" + "/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness"
subprocess.Popen(command,shell=True)
command2 = "echo {} | sudo -S tee /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness ".format(new_brightness_level).split()
c2 =subprocess.Popen(command2,shell=True,stdin=subprocess.PIPE,universal_newlines=True)
res = c2.communicate(sudo_pass + '\n')[1]
#command = "echo " + "'" + str(new_brightness_level) + "'" + "sudo -S > /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness"
cmd2 = subprocess.Popen(['sudo', '-S'] + command.split(),stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
先谢谢大家的帮助!!!
尝试了不同的东西,终于找到了一个可行的解决方案。
command3 = "echo {} | tee /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness ".format(new_brightness_level)
command4 = " sudo -S bash -c '{}' ".format(command3)
c1 =subprocess.Popen(command4,shell=True,stdin=subprocess.PIPE,universal_newlines=True)
res = c1.communicate(sudo_pass + '\n')[1]
在命令3中创建了没有Sudo的命令。
在命令4中,首先添加了sudo和-S(用于从通信功能中获取密码),然后使用bash shell,它将作为sudo执行,因此所有的命令将使用sudo运行
请纠正我的错误,并添加进一步的信息,如果任何人都觉得非常感激。