如何从 Python 安全地清除 Gnome 中的两个剪贴板?

Mar*_*612 5 python gnome gnome-terminal python-3.x xclip

Gnome 桌面有 2 个剪贴板,X.org(保存每个选择)和旧版剪贴板 (CTRL+C)。我正在编写一个简单的 python 脚本来清除两个剪贴板,最好是安全地清除,因为它可以在复制粘贴密码后完成。

我在这里看到的代码是这样的:

# empty X.org clipboard
os.system("xclip -i /dev/null")  

# empty GNOME clipboard
os.system("touch blank")  
os.system("xclip -selection clipboard blank")  
Run Code Online (Sandbox Code Playgroud)

不幸的是,这段代码创建了一个由于某种原因命名的文件blank,所以我们必须删除它:

os.remove("blank")
Run Code Online (Sandbox Code Playgroud)

然而,主要问题是,通过调用这两个脚本,xclip即使在我关闭终端之后,它也会使进程保持打开状态。

所以这个选项有两个问题:

1)它创建一个空白文件,这对我来说似乎是一个有缺陷的方法

2)它使进程保持开放状态,这可能是一个安全漏洞。

我也知道这个方法:

 os.system("echo "" | xclip -selection clipboard")  # empty clipboard
Run Code Online (Sandbox Code Playgroud)

然而,这个方法\n在剪贴板中留下了一个换行符,所以我也不认为这种方法有效。

那么如何正确去做呢?

Mar*_*612 0

我已经弄清楚了:

#CLIPBOARD cleaner
subprocess.run(["xsel","-bc"])

#PRIMARY cleaner
subprocess.run(["xsel","-c"])
Run Code Online (Sandbox Code Playgroud)

这会清理两个缓冲区,并且根本不会留下任何僵尸进程。感谢所有提出其中一些建议的人。