PYTHON 和批处理脚本:如果存在则运行文件,如果不存在则创建

完全免责声明:我不懂 PYTHON。

大家好,
我为我的音量键制作了一个 AutoHotKey 脚本。我想创建一个运行 python 文件的批处理文件(因此,如果我更换计算机,我可以轻松创建此脚本),它将执行以下操作

  1. 检查D盘是否存在volume_keys.ahk

  2. 如果存在,运行它;

  3. 如果它不存在,则创建一个名为 volume_keys.ahk 的文件并将我的脚本添加到其中。

我的脚本是:

^!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

我真的很感谢大家的任何帮助。



浮云间
浏览 172回答 2
2回答

HUH函数

您可以os为此使用图书馆。这是 python 程序的样子。import osif os.path.isfile('D:\\volume_keys.ahk'): # check if it exists    os.system('D:\\volume_keys.ahk') # execute itelse:    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

慕尼黑8549860

要激活 ahk 脚本,您可能需要使用我从此处subprocess获取示例的模块import subprocess subprocess.call(["path/to/ahk.exe", "script.ahk"])请注意,您必须先在计算机上找到 ahk 可执行文件,然后才能使用该脚本,也许您也想自动检查它。您可以在一个字符串中设置要检查脚本的路径,然后将脚本的文件名作为字符串添加到列表中。您可以使用listdir()fromos模块查看给定路径中的任何文件和目录,然后遍历您的脚本名称并检查它是否存在于该文件列表中。如果是,请运行它。在这个例子中,我将你的脚本复制粘贴到一个字符串中作为字典中键“scriptname”的值,这样 python 就可以实际创建脚本文件。不过,这并不是一个很好的方法,您可能希望在 python 脚本旁边的目录中准备脚本并从那里复制它们。from os import listdirfrom os.path import isfile, joinCHECK_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 laterfor 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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python