[英]controlling environment for subprocess command
我正在嘗試使用以下命令從特定的絕對路徑啟動腳本
from subprocess import check_output
如果我運行:
# myscript.py
check_command=['pwd']
ret=check_output(check_command,shell=True)
print(ret)
path_set_command=['cd MYABSPATH']
ret=check_output(path_set_command,shell=True)
ret=check_output(check_command,shell=True)
print(ret)
它打印兩次myscript.py
所在的文件夾。 因此,我知道每次調用check_output
重新創建外殼程序中的環境變量。
如何使用check_ouput設置命令的路徑? 我試圖讓我的命令為
ret=check_output(['cd MYABSPATH; ./otherscript.py'] ,shell=True)
但是,如果我將參數傳遞給我的otherscript.py
(將它們作為附加項添加到包含命令的列表中),則它們將無法正確轉發。
那么,如何運行otherscript.py
在MYABSPATH
與foo
bar
論據?
您可以使用cwd:
foo = check_output("pwd", cwd="/MYABSPATH", shell=True)
在啟動腳本之前,請使用os模塊更改目錄。 然后,您應該可以訪問您的腳本
import os
from subprocess import check_output
os.chdir('MYABSPATH')
ret = check_output(path_set_command, shell=True)
print(ret)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.