不要更改子进程的路径
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
关键字进行处理。
Ι 需要使用 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
关键字进行处理。