簡體   English   中英

Python為幾個進程創建shell

[英]Python create shell for several processes

我在Windows上使用subprocess.call()在python中執行了幾個命令,但是對於每個命令,我需要在調用正確的命令之前使用環境設置執行批處理文件,如下所示

subprocess.call(precommand + command)

有沒有辦法在python中“創建” shell,該批處理文件只會執行一次,而在該shell命令中將執行幾次?

  1. 將命令寫入蝙蝠文件( tempfile.NamedTemporaryFile()
  2. 運行蝙蝠文件subprocess.check_call(bat_file.name)

(未測試):

#!/usr/bin/env python
from __future__ import print_function
import os
import subprocess
import tempfile

with tempfile.NamedTemporaryFile('w', suffix='.bat', delete=False) as bat_file:
    print(precommand, file=bat_file)
    print(command, file=bat_file)
rc = subprocess.call(bat_file.name)
os.remove(bat_file.name)
if rc != 0:
    raise subprocess.CalledProcessError(rc, bat_file.name)

您是否需要分別從每個命令獲取輸出? 如果否-您可以使用&&,||傳達這些命令。 要么 ;

cd dir && cp test1 test2 && cd -

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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