1

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

/sys/class/backlight/acpi_video0/brightness

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

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

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

谢谢你们可能帮助我。

4

4 回答 4

1

在 Ubuntu 中,我使用xbacklight包和os.system()os模块导入的 python 实现了这一点。

安装

sudo apt install xbacklight

蟒蛇命令

os.system('xbacklight -set ' + str(value))其中 value 是输入。

于 2018-04-02T05:52:17.790 回答
1

你可以使用os.system() 或者subprocess.Popen()

不是很推荐,但是对于输入不是来自外部源的个人项目,我认为它没有什么害处。话虽如此,使用它时应该小心,因为您将直接从命令行执行,所以你的 CLI 可以做的任何事情,它都可以做到。你被警告了。

使用os.system()(您可能必须将 shell 的路径添加到命令中。这通常/bin/bash在 Linux 中。):

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"')

再一次,我会说,不建议频繁使用,尤其是在外部源可能影响正在运行的命令的输出的情况下。仅当您知道将要输入命令的内容时才使用它。

于 2017-10-31T05:37:26.720 回答
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,所以对我来说没问题

我的函数现在看起来像这样:

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 之间

于 2017-10-31T14:16:28.540 回答
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
于 2018-12-14T16:35:05.770 回答