проблема с пробелами в Python с двумя переменными - PullRequest
0 голосов
/ 28 июня 2018

Запуск Python 2.6.6 и всякий раз, когда я пытаюсь использовать 2 переменные, которые являются путями в другой переменной, я получаю ошибку пробела:

'C:\Program' is not recognized as an internal or external command,
operable program or batch file.

Это мой код, и проблема связана с переменной cmd:

from subprocess import call, Popen, PIPE, STDOUT

example = '"C:\\Program Files\\Example\\test.cmd"'  
output = '"C:\\test\\python\\reportFromPython.xml"'

cmd = example + " -T 'testing title' " + output

p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT)
output = p.stdout.read()
print output

Если я изменюсь

cmd = example + " -T 'testing title' " + output

до

cmd = example + " -T 'testing title' "

Тогда это работает, но мне нужна выходная часть ... Как я могу заставить его работать с обеими переменными?

1 Ответ

0 голосов
/ 28 июня 2018

Согласно этому ответу , вам не нужно shell=True, если вы используете файл .cmd. Затем вы можете передать свои аргументы в виде списка:

cmd = [example, "-T", "'testing title'", output]

А остальная часть кода будет такой же, за исключением удаления shell=True.

...