我正在尝试从AHK调用Python代码来处理剪贴板上的YouTube成绩单,删除这些时间戳,将其融合为一个字符串,然后用新的处理后的字符串替换原始文本,以便我可以粘贴出来。
AHK代码:
^x::
clipboard =
Send, ^c
Run "directory\try.py"
Return
Python代码(try.py):
import pyperclip
content = pyperclip.paste()
lines = content.split('\r\n')
new_lines = []
for line in lines:
for i,x in enumerate(line):
if x.isalpha():
position = i
break
new_line = line[position:]
new_lines.append(new_line)
# print('Preview', '\n', ' '.join(new_lines))
pyperclip.copy(' '.join(new_lines))
有时该系统可以运行,但有时却不能。有时,当它不起作用时,如果我回到YouTube页面并再次按ctrl + x,它会起作用。我很确定问题出在AHK部分,因为我几个月来一直在手动使用Python代码,而没有任何错误。感谢任何人都可以提供帮助。
答案 0 :(得分:3)
是的。 AHK太快了。剪贴板内容需要时间。一探究竟。这样做是这样的:
grep author
您甚至可能需要增加一些睡眠时间:
; Using ClipWait to improve script reliability:
clipboard = ; Start off empty to allow ClipWait to detect change
Send, ^c
ClipWait ; Wait for the clipboard to contain text.
Run "directory\try.py"
或者更好,尝试这样(使用; Using ClipWait to improve script reliability:
clipboard = ; Start off empty to allow ClipWait to detect change
Sleep, 50 ; milliseconds
Send, ^c
ClipWait ; Wait for the clipboard to contain text.
Sleep, 150 ; milliseconds
Run "directory\try.py"
函数):
OnClipboardChange
您可以注释掉结尾OnClipboardChange("ClipChanged")
return
^x::
Send, ^c
return
ClipChanged(Type) {
MsgBox "%Clipboard%" ; comment out if working well
run "directory\try.py"
ExitApp
}
,但ExitApp
不仅会触发它,而且每次剪贴板更改时(因此,如果您自己击^x
,您都将需要某种方式)退出命令,例如control+c
等。
Hth !!