Gönderen Konu: python ile linux komutları  (Okunma sayısı 1746 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı aoylmz

  • İleti: 15
python ile linux komutları
« : 09 Aralık 2014 - 16:42:43 »
Merhaba,



python ile linux komutlarını nasıl çalıştırabilirim?
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Çevrimdışı kodadiirem

  • Newbie
  • *
  • İleti: 8
Re: python ile linux komutları
« Yanıtla #1 : 09 Aralık 2014 - 18:23:11 »
os modülünü import etmeniz lazım. Örneğin şu kod terminalde kodadiirem yazdırır:
Kod: [Seç]
import os

os.system("echo kodadiirem")
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »
Lütfen Türkçemizi doğru kullanalım.

Çevrimdışı aoylmz

  • İleti: 15
Re: python ile linux komutları
« Yanıtla #2 : 24 Aralık 2014 - 20:50:45 »
Teşekkür ederim @kodadiirem. İnternette de bir araştırma yapıp uğraştıktan sonra şöyle basit bir arayüz yaptım:
Kod: [Seç]
import os
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
 
def main():
    app = QApplication(sys.argv)
    w = MyWindow()
    w.show()
    sys.exit(app.exec_())
 
class MyWindow(QWidget):
    def __init__(self, *args):
        QWidget.__init__(self, *args)

        self.le = QLineEdit()
        self.te = QTextEdit()
        layout = QVBoxLayout(self)
        layout.addWidget(self.le)
        layout.addWidget(self.te)
        self.setLayout(layout)
        self.connect(self.le, SIGNAL("returnPressed(void)"), self.komut_calistir)

    def komut_calistir(self):
        komut = str(self.le.text())
        cikti = os.popen4(komut)[1].read()
        self.te.setText(cikti)
 
if __name__ == "__main__":
    main()

Yalnız bir sorunum var. Örneğin pacman -Syu komutu verdiğimde
Kod: [Seç]
sudo: tty bulunmuyor ve askpass programı belirtilmemiş

şeklinde bir hata veriyor. Ne yapabiliriz?
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Çevrimdışı kodadiirem

  • Newbie
  • *
  • İleti: 8
Re: python ile linux komutları
« Yanıtla #3 : 24 Aralık 2014 - 23:29:07 »
Bir şey değil aoylmz.
Alıntı yapılan: "aoylmz"
Kod: [Seç]

       ...
        cikti = os.popen(komut).read()
        ...


Öncelikle kodu yukarıdaki gibi düzeltince uygulama çalıştı. pwd, ls gibi komutlarda bende hata vermedi fakat terminalden giriş istenilen komutlarda (sudo, vb.) uygulama dondu.



Uygulama şifre istediği için terminale yönlendiriyor ve sıkıntı orada çıkıyor. -çok tecrübeli olmamamdan kaynaklanıyor olabilir- Bunun çözümü ile ilgili aklıma şu an bir şey gelmiyor. Eğer bir yolunu bulursam paylaşırım.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »
Lütfen Türkçemizi doğru kullanalım.