如何解决PYTHON AND BATCH脚本:运行文件如果存在,并创建如果不存在
免责声明:我不知道PYTHON。
嗨,大家好,
我为音量键制作了一个AutoHotKey脚本。我想创建一个运行python文件的批处理文件(因此,如果我更换计算机,我可以轻松创建此脚本)
我的脚本是:
^!NumpadMult::Send {Volume_Mute}
^!NumpadAdd::Send {Volume_Up}
^!NumpadSub::Send {Volume_Down}
我知道如何编码.bat文件,只需要python观点的帮助,但我要求社区对其进行检查:
@ECHO OFF
ECHO This script will run an AHK Script. If you want to stop this process from happening,then cross this window off.If you want to continye:
pause
cd d:
D:\run_volume_keys_ahk_script.py
我非常感谢社区的任何帮助。
预先感谢
解决方法
您可以为此使用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
,
要激活ahk脚本,您可能需要使用subprocess
模块,我从here中获得了示例
import subprocess
subprocess.call(["path/to/ahk.exe","script.ahk"])
请注意,您必须先在计算机上找到ahk可执行文件,然后才能使用脚本,也许您也想自动进行检查。
您可以在一个字符串中设置要检查脚本的路径,然后将脚本的文件名作为字符串添加到列表中。您可以使用listdir()
模块中的os
来查看给定路径下的所有文件和目录,然后遍历您的脚本名并检查其是否在该文件列表中。如果可以,请运行它。
在此示例中,我将您的脚本复制粘贴到字符串中,作为字典中键“ scriptname”的值,以便python可以实际创建脚本文件。不过,这并不是真正的好方法,您可能希望在python脚本旁边的目录中准备脚本,然后从那里复制它们。查看有关here
的示例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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。