.py | python.subprocess执行bash命令

.py | python.subprocess执行bash命令

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

本文讨论了如何在Linux环境下禁用触摸屏。作者使用xinput命令列出输入设备,并将触摸屏的ID写入.bashrc文件以实现自动禁用。由于触摸屏出现问题,作者决定用Python脚本动态获取触摸屏ID并禁用它。

🔎

延伸解读

从静态ID到动态获取的转变

作者最初将触摸屏ID直接写入~/.bashrc实现自动禁用,但新键盘接入后ID可能变化,导致键盘无法使用。这提醒我们,在硬件配置可能变动的环境中,依赖固定ID的脚本容易失效,需要动态获取设备ID。

Python subprocess 的实用技巧

文章展示了用subprocess.run执行xinput list并捕获输出,再通过decode和字符串处理提取触摸屏ID。关键点包括capture_output=True获取输出、decode('utf-8')解码字节、以及partition方法分割字符串。这些方法适合处理命令输出并提取信息。

脚本部署与自动化

作者将Python脚本保存为~/disable_touchscreen.py,并在~/.bashrc中添加python ~/disable_touchscreen.py,实现登录时自动禁用触摸屏。这种将复杂逻辑交给Python、简单触发交给bash的方式,平衡了灵活性与便利性。

❓

Q&A

如何在Linux环境下禁用触摸屏?

可以使用xinput命令列出所有输入设备,并通过xinput disable命令禁用触摸屏。

为什么需要动态获取触摸屏的ID?

因为新键盘的使用导致触摸屏的ID可能会变化,需要动态获取以确保正确禁用。

如何使用Python脚本执行bash命令?

可以使用subprocess模块,通过subprocess.run()方法执行bash命令并获取输出。

xinput命令的作用是什么?

xinput命令用于列出和管理输入设备,包括禁用特定设备。

如何将触摸屏的ID写入.bashrc文件?

可以将xinput disable命令与触摸屏的ID一起写入~/.bashrc文件,以实现自动禁用。

Python脚本中如何处理命令输出?

可以使用capture_output参数捕获命令输出,并通过decode()方法将其转换为字符串进行处理。

🏷️

标签

➡️

继续阅读