如何在python代码中执行ubuntu命令?

如何在python代码中执行ubuntu命令?

我必须在python中执行此代码

dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev "'Disabled'"

尝试过:

os.system('dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev "Disabled" ')

错误:

error: 0-1:unknown keyword

Usage:
  dconf write KEY VALUE 

Write a new value to a key

Arguments:
  KEY         A key path (starting, but not ending with '/')
  VALUE       The value to write (in GVariant format)

请帮助我解决这个问题。谢谢:-)

答案1

从 python 编辑 dconf/gsettings

您真的不应该os.system()再使用它进行系统调用,它已经被弃用并且完全过时了很长时间。

有不同的选项可以编辑dconf数据库。

使用子进程

假设我有一条dconf路径/com/gexperts/Tilix/keybindings/app-shortcuts,我可以使用:

import subprocess

key = "/com/gexperts/Tilix/keybindings/app-shortcuts"

subprocess.Popen([
    "dconf", "write", key, "'enabled'"
])

注意引用!


然而在大多数情况下,你也可以使用(更好) 。如果值也可以从中设置,则gsettings使用。Gio.Settingsgsettings


使用 Gio.Settings

from gi.repository import Gio

key = "com.gexperts.Tilix.Keybindings"

settings = Gio.Settings.new(key)
settings.set_string("app-shortcuts", "enabled")

也可以看看https://lazka.github.io/pgi-docs/#Gio-2.0/classes/Settings.html#Gio.Settingshttps://people.gnome.org/~gcampagna/docs/Gio-2.0/Gio.Settings.html

关于 gsettings/dconf

现代 Ubuntu 版本中的首选项大多以二进制格式存储在数据库中。这些设置可以通过(cli) 或(gui)dconf直接编辑。Dconf 是低级的,可通过极快且轻量级的直接编辑设置。dconfdconf-editordconf

不过,一般来说,如果可能的话,最好通过 编辑数据库中的设置gsettings,这是 的 cli 前端dconf。原因是gsettings具有一致性检查,使用起来更安全。

您可能会发现这是一篇有趣的文章gsettingshttps://developer.gnome.org/gio/stable/GSettings.html

还有这个dconfhttps://developer.gnome.org/dconf/unstable/dconf-tool.html

笔记

  • 由于我没有运行 Unity,因此我使用了另一个路径/键示例。

相关内容