我正在开发一个能够控制背光亮度的python项目。我使用Ubuntu 17.04,我已经找到了显示背光亮度的文件
/sys/class/backlight/acpi_video0/brightness
我可以在bash终端中用来更改值的命令是
sudo su -c 'echo 12 > /sys/class/backlight/acpi_video0/brightness'
但我不知道如何在py项目中实现它。 也许这也是错误的开始方式。
谢谢大家帮我解决。
答案 0 :(得分:1)
你可以使用os.system()
或subprocess.Popen()
不是真的推荐,但我认为输入不是来自外部来源的个人项目没有任何损害。话虽这么说,应该注意使用它,因为您将直接从命令行执行,因此CLI可以执行任何操作。你被警告了。
使用os.system()
(您可能必须在命令的前面添加shell的路径。在Linux中通常为/bin/bash
。):
import os
os.system('echo "your command goes here"')
如果这不起作用,那么它应该类似于:
os.system('/bin/bash echo "your command goes here"')
使用subprocess.Popen()
(同样,您可能需要在命令的其余部分之前添加shell的路径。:
import subprocess
subprocess.Popen('echo "your command goes here"')
我将再次说,这不是经常使用的建议,特别是在外部源可能影响正在运行的命令的输出的情况下。只有当你知道将在命令中输入什么时才使用它。
答案 1 :(得分:1)
在Ubuntu中,我使用 xbacklight 包和从os.system()
模块导入的python os
来实现此目的。
安装:
sudo apt install xbacklight
Python命令:
os.system('xbacklight -set ' + str(value))
其中value是输入。
答案 2 :(得分:0)
所以我做了一些研究并在这个网站上https://wiki.archlinux.org/index.php/backlight我找到了命令
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.freedesktop.DBus.Properties.Set org.gnome.SettingsDaemon.Power.Screen Brightness "<int32 50>"
我不知道这是如何工作的,但我改变了我的背光。
它仅适用于gnome !! ,但因为我使用gnome并且应用程序应该是gnome对我来说没关系
我的功能现在看起来像这样:
def change_brightness(self, value):
os.system('gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.freedesktop.DBus.Properties.Set org.gnome.SettingsDaemon.Power.Screen Brightness "<int32 ' + str(value) + '>"')
该值必须介于0到100之间
答案 3 :(得分:0)
尝试一下:
def set_brightness(brightness):
if int(brightness) > 15:
raise TypeError("Need int 0 < and > 15")
elif int(brightness) < 0:
raise TypeError("Need int 0 < and > 15")
with open("/sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness","w") as bright:
bright.write(str(brightness))
bright.close()
set_brightness(0) #Brightness 0-15