Os.system ile konsola ard arda komut girme

Öncelikle herkese iyi forumlar.
Os.system() komutu ile konsola ard arda komutlar verebilirmiyiz.
Denediklerim arasında şunlar dahi var:

liste = ["python3","print('hello world')"]

for i in liste:
    os.system(i)

Pencereli oluşturmadığınız ve path’e eklenmiş tüm python kodları zaten arka arkaya konsola yazdırılarak çalışıyor. Ekstradan bunu yapmamın faydası ne olacak? Tam olarak düşündüğünüz nedir?

Not > Bunu çalıştırmayı denerseniz yüksek ihtimalle PNR hatası alacaksınız
Not > system() içerisine yazılacak kondların “” yada ‘’ arasında olması gerekmektedir. Bu yüzden i değişkeni konsola döndürmeyecektir. .format() fonksiyonunu kullanabilirsiniz ama yine PNR hatası verecektir

Ruby konsolunu açıp içine kod yazmak istiyorum.

os.system("irb")
os.system("require 'tk'")

Tam olarak şöyle işliyor.

Siz bir python kodu çalıştırdığınız zaman konsol ekranında açılıyor.
Ardından konsol ekranına system(“python”) dediğiniz zaman artık o konsol ekranı sizin çalıştırdığınız kod bloğundan çıkıyor.
Aşağıdaki gibi oluyor. Böylelikle çalıştırmak istediğiniz kod bloğundan ayrıldığı için artık kodlarınızı konsol ekranında gerçekleştiremiyor.

Ekran Alıntısı

os.system’e bir str verilmesi lazım, neyi neyin arasına yazdığının bir önemi yok. Yukarıdaki kod da os.system’i doğru bir şekilde çağırıyor.

1 Beğeni

konsola gönderdiğimiz ilk değer python olunca konsol, python konsola geçiyor. Bu yüzden artık normal system konsoluna değer gönderemiyoruz.

system’e python’ı çağır dedikten sonra print çalışsın diye bekliyoruz fakat çalışmayacaktır çünkü artık normal system konsolu değil python konsolu oluyor. Python konsoluna da system ile gönderemediğimiz için aşağıdaki gibi python konsolunda kalıyor.

2

py.exe var konsol ekranında çalışan fakat system cmd.exe ye gönderiyor

21

cmd.exe den çıkıp py.exe ye geçtiği için system() işlevsizleşiyor

1 Beğeni

Peki hem ruby açıp hemde içine kod yazmanın bir yolu varmı ?

Yazacağınız kod en baştan belli ise bir dosyaya yazıp dosyayı ruby ile çalıştırmanız daha kolay olur.

2 Beğeni

@EkremDincel @tevhidulvahset yardımlarınız için teşekkür ederim.

1 Beğeni

Os degil os, komut degil fonksiyon.

Hayir. Cozumu birden fazla os.system cagrisi yapmak.

Bunun yolu birden fazla komut cagirmak degil. subprocess — Subprocess management — Python 3.12.1 documentation