все.Я пытаюсь использовать Python 2.7.1 для запуска пакетных файлов на основе того, что пользователь вводит в приглашении ввода.Проблема у меня в том, что командные файлы не запускаются.Мне удалось получить конкретный пакетный файл для запуска из python, если он вызывается из main (), но не могу заставить python выбрать файл на основе входного значения.Мой код:
from subprocess import Popen
def results():
Popen("results.txt")
selection()
def buildinga():
Popen("5463.bat")
results()
def base():
Popen("base.bat")
results()
def selection():
print "This tool will check the device status for the specified building."
print "Type 'exit' to quit the program."
selection.c = input("Please enter the device number: ")
if selection.c == "001":
base()
if selection.c == "5463":
buildinga()
if selection.c == "exit":
exit()
def main():
selection()
main()
Способ запуска одного пакетного файла:
from subprocess import Popen
def batchwriter():
Popen("make.bat")
def main():
batchwriter()
main()
Этот способ не позволяет мне выбрать, какой файл запускается, только одинуказано.Любая помощь будет высоко ценится.
Я пытался опубликовать это в комментариях, но не смог.raw_input работает.Пакетный файл выполняется, а затем отображается файл результатов, однако также отображаются ошибки.Ошибки не влияют на функциональность, потому что результаты правильные.Я получаю следующий вывод:
This tool will check the device status for the specified building.
Type 'exit' to quit the program.
Please enter the device number: 5463
Traceback (most recent call last):
File "M:\cstat\ct.py", line 37, in <module>
main()
File "M:\cstat\ct.py", line 34, in main
selection()
File "M:\cstat\ct.py", line 26, in selection
buildinga()
File "M:\cstat\ct.py", line 10, in buildinga
results()
File "M:\cstat\ct.py", line 5, in results
Popen("results.txt")
File "C:\Utilities\Python\lib\subprocess.py", line 672, in __init__
errread, errwrite)
File "C:\Utilities\Python\lib\subprocess.py", line 882, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
M:\cstat>[ 12:11:36.63] 5463 is ONLINE