0
我已經在Windows上的蟒蛇幾個命令執行使用subprocess.call(),但對於每一個我需要調用適當的命令之前,執行與environmet建立批處理文件,它看起來像這樣Python的幾個工藝打造外殼
subprocess.call(precommand + command)
有沒有辦法在python中「創建」shell,該批處理文件只能執行一次,並且在該shell命令中會執行多次?
我已經在Windows上的蟒蛇幾個命令執行使用subprocess.call(),但對於每一個我需要調用適當的命令之前,執行與environmet建立批處理文件,它看起來像這樣Python的幾個工藝打造外殼
subprocess.call(precommand + command)
有沒有辦法在python中「創建」shell,該批處理文件只能執行一次,並且在該shell命令中會執行多次?
tempfile.NamedTemporaryFile()
)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 -
這裏出現這些命令很長的問題,所以只有10%的命令由於命令太長而被執行 – miqelm