Нужна помощь с использованием Python 2.7.1 для выбора и запуска различных пакетных файлов на основе ввода пользователя - PullRequest
1 голос
/ 23 сентября 2011

все.Я пытаюсь использовать 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

1 Ответ

0 голосов
/ 23 сентября 2011

Использовать raw_input вместо input . input преобразует числовой ввод из строки в целое число.

>>> input()
001
1
>>> raw_input()
001
'001'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...