簡體   English   中英

使用python更改linux中的背光亮度

[英]change backlight brightness in linux with python

我正在開發一個Python項目,該項目應該能夠控制我的背光亮度。 我正在使用Ubuntu 17.04,已經找到了顯示背光亮度的文件所在的位置

/sys/class/backlight/acpi_video0/brightness

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

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

但是我不知道如何在py項目中實現這一點。 也許這也是錯誤的開始方法。

謝謝你們幫我忙。

您可以使用os.system()os.system() subprocess.Popen()

確實不建議這樣做,但是對於個人項目來說,它的輸入不是來自外部資源,對我來說並沒有什么害處。也就是說,應該謹慎使用,因為您將直接從命令行執行,因此您的CLI可以執行的所有操作都可以。 你被警告了。

使用os.system() (您可能必須在命令之前添加外殼程序的路徑。在Linux中通常為/bin/bash 。):

import os os.system('echo "your command goes here"')

如果那不起作用,那么它應該看起來像:

os.system('/bin/bash echo "your command goes here"')

使用subprocess.Popen() (同樣,您可能需要在執行其余命令之前在外殼程序之前添加路徑:

import subprocess subprocess.Popen('echo "your command goes here"')

再說一次,我不建議經常使用此命令,特別是在外部源可能會影響正在運行的命令的輸出的情況下。 僅當您知道將在命令中輸入什么內容時,才使用此功能。

在Ubuntu中,我使用xbacklight包和從os模塊導入的python的os.system()實現了此目的

安裝方式

sudo apt install xbacklight

Python命令

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

因此,我做了一些研究,並在此站點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之間

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM