【问题标题】:Do not change the path with subprocess [duplicate]不要用子进程更改路径[重复]
【发布时间】:2018-07-13 23:52:13
【问题描述】:

我需要使用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

【问题讨论】:

    标签: python subprocess python-telegram-bot


    【解决方案1】:

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

    【讨论】:

    • How to Answer 中,注意“回答正确提出的问题”部分,以及关于“之前已经被多次询问和回答”的问题的项目符号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 2021-10-24
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多