这可能看起来像是Python script won't run on keyboard shortcut的复本,但是,我已经尝试了该线程的建议,但这并不是我的答案。
我正在尝试使用pyautogui通过键盘快捷键发出一系列命令。
脚本如下:
set filename_in "something.V"
set filename_out "something.vhdl"
set f_in [open $filename_in]
set f_out [open $filename_out "w"]
while {[gets $f_in line] >= 0} {
set line [regsub -all {\yassign\y} $line ""]
puts $f_out $line
}
close $f_in
close $f_out
如果我在终端机上写#!/usr/bin/python3
import pyautogui
# Keyboard sequence to delete current line of text
pyautogui.press('end')
pyautogui.hotkey("shift", "home")
pyautogui.press('backspace')
并快速切换另一个窗口,则该窗口可以正常工作并删除该课程练习者所在的当前行。
但是,当我进入键盘快捷键并将sleep 1 && ./pyautoguitest.py
绑定到命令Shift + Alt + Backspace
时,它默默地失败了……根本没有任何反应。
我正在使用Pop_OS!应该可以像在Ubuntu上一样处理它。
有人尝试过让pyautogui使用键盘快捷键吗?
只是为了排除运行脚本的权限问题,我为它赋予了777个权限,所以所有用户都应该能够运行它
更新------ 我试图在python脚本中使用日志记录,看是否有任何失败
/usr/bin/python3 /home/user/pyautoguitest.py
当我使用#!/usr/bin/python3
import logging
import traceback
logging.basicConfig(filename='/tmp/myapp.log', level=logging.DEBUG,
format='%(asctime)s %(levelname)s %(name)s %(message)s')
logger=logging.getLogger(__name__)
try:
import pyautogui
import sys
pyautogui.press('end')
pyautogui.hotkey("shift", "home")
pyautogui.press('backspace')
except Exception as e:
logger.error(traceback.format_exc())
else:
logger.error("all clear")
执行文件时,日志文件会得到一个sleep 2 && ./pyautoguitest.py
条目,表示一切正常,当我通过键盘快捷键执行该操作时,也会发生同样的事情。
非常奇怪,就像是用作键盘快捷键时阻止其运行键一样