2 回答

TA貢獻1836條經驗 獲得超4個贊
您可以os為此使用圖書館。這是 python 程序的樣子。
import os
if os.path.isfile('D:\\volume_keys.ahk'): # check if it exists
os.system('D:\\volume_keys.ahk') # execute it
else:
with open('D:\\volume_keys.ahk', 'w') as f: # open it in w (write) mode
f.write('^!NumpadMult::Send {Volume_Mute} \
^!NumpadAdd::Send {Volume_Up} \
^!NumpadSub::Send {Volume_Down}') # Write to file
os.system('D:\\volume_keys.ahk') # execute

TA貢獻1818條經驗 獲得超11個贊
要激活 ahk 腳本,您可能需要使用我從此處subprocess
獲取示例的模塊
import?subprocess subprocess.call(["path/to/ahk.exe",?"script.ahk"])
請注意,您必須先在計算機上找到 ahk 可執行文件,然后才能使用該腳本,也許您也想自動檢查它。
您可以在一個字符串中設置要檢查腳本的路徑,然后將腳本的文件名作為字符串添加到列表中。您可以使用listdir()
fromos
模塊查看給定路徑中的任何文件和目錄,然后遍歷您的腳本名稱并檢查它是否存在于該文件列表中。如果是,請運行它。
在這個例子中,我將你的腳本復制粘貼到一個字符串中作為字典中鍵“scriptname”的值,這樣 python 就可以實際創建腳本文件。不過,這并不是一個很好的方法,您可能希望在 python 腳本旁邊的目錄中準備腳本并從那里復制它們。
from os import listdir
from os.path import isfile, join
CHECK_PATH = "D:"
AHK_EXECUTABLE_PATH = "path/to/ahk.exe"
SCRIPTS_TO_CHECK = {'script1.ahk':"""^!NumpadMult::Send? {Volume_Mute}
^!NumpadAdd::Send? ?{Volume_Up}
^!NumpadSub::Send? ?{Volume_Down} """, 'script2.ahk':" some other script here"}
files_to_check = set(listdir(CHECK_PATH)) # using a set for fast lookup later
for scriptname, script in SCRIPTS_TO_CHECK.items():
? ? if not scriptname in files_to_check:
? ? ? ? print(f"script {scriptname} not found, creating it.")
? ? ? ? with open(scriptname, 'w') as file:
? ? ? ? ? ? file.write(script)
? ? # else
? ? subprocess.call(AHK_EXECUTABLE_PATH, scriptname)
添加回答
舉報