Помните переменные командной строки в Python - PullRequest
0 голосов
/ 07 апреля 2019

Я хочу, чтобы командная строка запускалась на python.

Например:

import subprocess

subprocess.call('set /A x = 5', shell=True)  
subprocess.call('echo %x%', shell=True)  

Мне бы хотелось, чтобы я запомнил значение 5, для которого было установлено значение x. Но вместо этого он отображает %x% как строку.

1 Ответ

1 голос
/ 07 апреля 2019

Использование subprocess очень конкретно означает, что вы запускаете другой процесс.Процесс, в котором была установлена ​​переменная, больше не будет существовать, когда управление вернется из подпроцесса обратно в Python.

Попробуйте

import os
import subprocess

env = os.environ.copy()
env['x'] = '5'
subprocess.check_call(
    'echo %x%',
    shell=True,
    env=env)

Обратите внимание также на переключение на check_call - вероятно, оно нездесь не имеет большого значения, но обычно вы должны проверять сбои подпроцесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...