不要更改子进程的路径

Do not change the path with subprocess

Ι 需要使用 subprocess 更改路径,但它不起作用

我正在使用py3.6 - python-telegrambot

这是我的代码

def sh(bot,update):
  ID = 289444284
  command=update.message.text
  print(command)
  su = subprocess.getstatusoutput(command)
  bot.sendMessage(ID,su[1] )

还有

subprocess.Popen(command, shell=True, stdout=PIPE).communicate()
subprocess.getoutput(command)
os.system(command)

但是当我把 cd 命令放回去时,我在同一条路径上,路径没有改变

![在此处输入图片描述][1]

[1]: screen shot

当您调用上述任何一个(subprocess.*os.system())时,您会创建一个新的(子)进程,如果您 运行 cd 这样,您将更改当前工作目录只针对 cd 本身,但它不会影响你的 运行ning python 代码和你在后面执行的任何命令。您需要使用 os.chdir() 或仅保留该信息并将其传递给新创建的子进程,并使用 subprocess.Popen()cwd 关键字进行处理。