Cmd'ye komut gönderme ve çıkan sonucu alma

Merhaba.

@LaAhad’ın da bahsettiği gibi subprocess modülü bunun için en iyi yol. Ancak os.system fonksiyonu ile de şu şekilde istediğiniz çıktıyı alabilirsiniz:

import os
import sys
import io

# Standard çıktıyı dosya benzeri bir yapıya atadık.
# Normalde sys.stdout'a bir dosya atanması gerekir.
# Ancak StringIO dosya benzeri hafızada tutulan bir yapıdır.
# Bu yapı sonucu doğrudan alıp kullanmak için uygun bir yapıdır.
stringIO = io.StringIO()
sys.stdout = stringIO

# Komutumuzu çalıştırıyoruz:
os.system('dir')

# Yukarıdaki komutun çıktısı sys.stdout'a yazdırılacaktır.
# Biz sys.stdout'u stringIO olarak belirlediğimiz için, sonucu alırken bu değişkeni kullanacağız.
# getvalue metodu stringIO'ya yazılmış değeri almamızı sağlar.
print(stringIO.getvalue())

İyi çalışmalar.

2 Beğeni