OS.System Çıktısını Kontrol Etmek

Herkese merhaba. Elementary OS yüklü olan bir Laptop kullanıyorum ve bilgisayarı her yeniden başlattığımda touchpad + klavye tuşuna basma işlemini devre dışı bırakıyor. Yani bir tuşa basarken touchpad’i hareket ettiremiyorum. Bu da bazı işlemleri yaparken (özellikle oyunlarda) sorun çıkartıyor. Her defasında aşağıdaki komutları yazarak aktif etmek zorunda kalıyorum.

xinput
xinput list-props (üstteki sonuçta çıkan touchpad değeri)
xinput set-prop (üstte yazdığım değer) (üstteki sonuçta çıkan touchpad hareket değeri) 0

Bu işlemi çift tık ile halletmek için Python’ın OS modülünü kullanarak bir program yazdım. Benim yerime kendisi tek tek yapıyor işlemleri fakat parantez içinde yazdığım değerler genelde değişiyor. Yazdığım kodlar şöyle:

import os

os.system("xinput")
os.system("xinput list-props 12")
os.system("xinput set-prop 12 328 0")

os.system çıktısını bir değişkene atayıp çıkan değeri kontrol etmek istedim ama çıktı olarak “0” gönderdi sadece. Benim direkt terminalden çıkan yazıyı alıp eşleştirme yapmam gerekiyor. os.system komutuyla terminaldeki yazıyı nasıl normal bir string ifadeye dönüştürebilirim?

deyisken = os.popen(“komut”)

bu sekilde terminalda gelen kodlari deyiskene ataya bilirsiniz

Hocam burayı inceleyebilir misiniz?Belki cozum olur.

Kolay gelsin :slight_smile:

Değişkene atadım fakat bunu nasıl ekrana yazdıracağım? Çıktı olarak <open file ‘xinput’, mode ‘r’ at 0x7fd3954ae540> gönderdi.

İnceledim fakat hata ile karşılaştım. ismailarilik’in kodlarının aynısını kullandım

Traceback (most recent call last):
  File "a.py", line 14, in <module>
    print(stringIO.getvalue())
TypeError: unicode argument expected, got 'str'

hatası aldım.

Aşağıdaki şekilde çıktı alabilirsiniz os.popen kullanarak:

>>> import os
>>> 
>>> output = os.popen('cat /etc/hostname').read().strip()
>>> print output
lab
1 Beğeni

Bu kodları Python 3 için yazmıştım. Python 2 mi kullandınız?

deyisken = os.popen(“ls -l”).read()
print(deyisken)

Bu sekilde okuya bilirsiniz

deyisken = os.popen(“ls -l”)
deyisken = deyisken.read()
print(deyisken)

Bu sekildede kullana bilirsiniz :slight_smile:

Muhtemelen Python 2 ile kullandım. Şimdi siz diyince fark ettim. Terminale Python3 yazmadan versiyon 3’ü kullanmıyor. Ben de sadece Python yazarak çalıştırmıştım.

Bu arada r0ark’ın cevabı çözdü sorunumu. Yardım eden herkese teşekkürler.

1 Beğeni