Python在CMD的一个实例中运行命令

Python在CMD的一个实例中运行命令,python,windows,command-line,Python,Windows,Command Line,我有以下代码: import os os.system('set x=5') os.system('echo %x%') 当我这样做时,我希望得到输出到屏幕的5,但我得到的是%x%。我认为这是因为这两个命令在两个不同的命令提示符实例上运行。如果有人能帮忙,我们将不胜感激 在python中,“set”命令似乎应该替换为“os.environ”方法。 这样,就可以设置环境变量 import os os.environ['x'] = "5" os.system('echo %x%') #resu

我有以下代码:

import os

os.system('set x=5')
os.system('echo %x%')
当我这样做时,我希望得到输出到屏幕的
5
,但我得到的是
%x%
。我认为这是因为这两个命令在两个不同的命令提示符实例上运行。如果有人能帮忙,我们将不胜感激

在python中,“set”命令似乎应该替换为“os.environ”方法。 这样,就可以设置环境变量

import os
os.environ['x'] = "5"
os.system('echo %x%')

#result is "5"
我认为这是实现目标最简单的方法。
希望这能对您有所帮助:)

不建议您这样做,但如果您真的希望以编程方式与控制台交互,模拟您通常的操作方式,您可以操作stdin和stdout缓冲区。子流程模块在python中有一些用于此的工具

import subprocess

p = subprocess.Popen('cmd.exe', stdin=subprocess.PIPE, stdout=subprocess.PIPE, universal_newlines=True)
p.stdin.write('set x=5\n')
p.stdin.write('echo %x%\n')
print p.communicate()[0]
p.terminate()

os.system('set x=5&&echo%x%')
?但假设我想从两个单独的命令执行,我会怎么做?谢谢您的回复,但正如我前面所说,我想从两个单独的命令执行。我给出的例子是我希望做的事情的简化版本。@Pokechu48谢谢您的快速反馈。我改变了我的回答。我认为您应该使用“os.environ”而不是在“os.system”方法中使用“set”命令。