🖥

#python でサブプロセスを起動し #shell に引数・環境変数・標準入力を与え標準出力する例

2019/04/12に公開
  • subprocess.run で色々できる
  • .stdout で標準出力結果を得られる

shell

#!/usr/bin/env bash

echo "Stdin is" $(cat /dev/stdin)
echo SOME_ENV is "$SOME_ENV"

echo First arg is "$1"

echo "Stdout!"

python

#!/usr/bin/env python3

import subprocess

stdout_of_shell = subprocess.run(['./eg.sh', 'banana boat'], \
  stdout=subprocess.PIPE, \
   input='Water fall!', \
   env={"SOME_ENV":'Wow'}, \
   encoding='utf-8').stdout

print(stdout_of_shell)

exe

$ ./proc.py
Stdin is Water fall!
SOME_ENV is Wow
First arg is banana boat
Stdout!

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/1202

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-04-12

Discussion