PYTHON 和批处理脚本:运行 文件如果存在,如果不存在则创建
PYTHON AND BATCH SCRIPT: Run file if it exists and create if it doesn't
完全免责声明:我不知道 PYTHON。
大家好,
我为我的音量键制作了一个 AutoHotKey 脚本。我想创建一个批处理文件,其中 运行 是一个 python 文件(因此,如果我更换计算机,我可以轻松创建此脚本),它将执行以下操作
- 检查D盘中是否存在volume_keys.ahk
- 如果存在,运行即;
- 如果不存在,则创建一个名为 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
非常感谢社区的任何帮助。
提前致谢
您可以为此使用 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
模块,其中我以
中的示例为例
import subprocess
subprocess.call(["path/to/ahk.exe", "script.ahk"])
请注意,您必须先在计算机上找到 ahk 可执行文件,然后才能使用该脚本,也许您也想自动检查它。
您可以在一个字符串中设置要检查脚本的路径,然后将脚本的文件名作为字符串添加到列表中。您可以使用 os
模块中的 listdir()
查看给定路径中的任何文件和目录,然后遍历您的脚本名称并检查它是否存在于该文件列表中。如果是,运行 它。
在此示例中,我 copy-pasted 将您的脚本作为字典中键 '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)
完全免责声明:我不知道 PYTHON。
大家好,
我为我的音量键制作了一个 AutoHotKey 脚本。我想创建一个批处理文件,其中 运行 是一个 python 文件(因此,如果我更换计算机,我可以轻松创建此脚本),它将执行以下操作
- 检查D盘中是否存在volume_keys.ahk
- 如果存在,运行即;
- 如果不存在,则创建一个名为 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
非常感谢社区的任何帮助。
提前致谢
您可以为此使用 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
模块,其中我以
import subprocess
subprocess.call(["path/to/ahk.exe", "script.ahk"])
请注意,您必须先在计算机上找到 ahk 可执行文件,然后才能使用该脚本,也许您也想自动检查它。
您可以在一个字符串中设置要检查脚本的路径,然后将脚本的文件名作为字符串添加到列表中。您可以使用 os
模块中的 listdir()
查看给定路径中的任何文件和目录,然后遍历您的脚本名称并检查它是否存在于该文件列表中。如果是,运行 它。
在此示例中,我 copy-pasted 将您的脚本作为字典中键 '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)