用python改变linux中的背光亮度

时间:2017-10-31 00:53:58

标签: python linux brightness backlight

我正在开发一个能够控制背光亮度的python项目。我使用Ubuntu 17.04,我已经找到了显示背光亮度的文件

/sys/class/backlight/acpi_video0/brightness

我可以在bash终端中用来更改值的命令是

sudo su -c 'echo 12 > /sys/class/backlight/acpi_video0/brightness'

但我不知道如何在py项目中实现它。 也许这也是错误的开始方式。

谢谢大家帮我解决。

4 个答案:

答案 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