Bartłomiej 'furas' Burek
furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Użycie bash do wykonania kodu w subprocess

subprocess domyślnie używa /bin/sh zamiast popularnego /bin/bash więc niektóra składnia nie działa

import subprocess

print(subprocess.check_output("for num in {2..4}; do echo $num; done", shell=True).decode())

Wynik

{2..4}

Można użyć bash -c "command"

import subprocess

print(subprocess.check_output('bash -c "for num in {2..4}; do echo $num; done"', shell=True).decode())

Wynik

2
3
4

Lub można użyć executable='/bin/bash'

import subprocess

print(subprocess.check_output("for num in {2..4}; do echo $num; done", shell=True, executable='/bin/bash').decode())

Wynik

2
3
4
Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury