Командная строка Windows Не работает с Python
Я пытаюсь получить следующую команду (которая работает, когда вводится вручную, чтобы отключить сервер mysql), работающий с python.
Строка кода, которую я запускаю:
os.system('"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin" -u demo -pdemopw shutdown')
Любые идеи, почему это будет работать из командной строки, но не из os.system, и как я могу это исправить?
- Вызов сценария из командной строки не работает
- Если операторы и сценарии одного сценария python из командной строки
- запустить скрипт python в терминале без команды python
- В чем разница между запуском ./file.py и python file.py?
- Пользовательские аргументы командной строки в python
При работе с файлами Windows / папками я почти всегда использую необработанные строки. Вот пример:
sql_admin = r"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin"
Обратите внимание на r
в начале строки. Это превращает строку в необработанную строку. Если вы этого не сделаете, Python будет искать обратные косые черты для специальных символов, таких как \n
(новая строка), \t
(tab) или \b
(обратная косая черта). У вас есть последнее в вашей строке.
Один из способов узнать, что происходит, – попробовать напечатать строку в интерпретаторе. Взгляните на следующий пример:
>>> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin" 'C:\\Program Files\\MySQL\\MySQL Server 5.1\x08in\\mysqladmin' >>> r"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin" 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqladmin'
Существует две альтернативы использованию необработанных строк. Первый заключается в том, чтобы просто избежать обратных косых черт:
>>> "C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqladmin"
Я всегда находил это немного уродливым и несколько сложнее читать. Вы также можете заменить обратную косую черту косой чертой:
>>> "C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqladmin"
Это будет работать, хотя выглядит странно, если вы парень Windows. Поэтому, в конце концов, я по-прежнему рекомендую использовать необработанные строки.
Попробуйте изменить \
на /
и он должен работать.
- Подключение к IMAP Exchange с помощью starttls в python 2.7 (не 3)
- Как сохранить вывод из вызова linux в Python
- Передача словарей в скрипт Python через командную строку
- Сохранять историю команд между (i) сеансами python
- ImportError: нет модуля с именем gdal
- Множество вариантов с docopt
- Python обрабатывает несколько файлов итеративно, без явного цикла
- Python: как запускать тесты, выполненные с помощью unittest
- Командная строка в коде R
- pdfsplit vs pdftk, разделить pdf на куски
- Почему я не получаю сообщения журнала INFO в python?