簡體   English   中英

子流程命令的控制環境

[英]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.pyMYABSPATHfoo 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM