Forum >> Programmazione Python >> GUI >> subrocess in tkinter

Pagina: 1

ciao a tutti sono un utente arch linux.

ho installato python 2.7 e 3.6.

da mesi studio python, a livello base me la cavo.

da giorni studio come costruire le interfacce grafiche per i miei programmi.

riesco a visualizzare, attraverso la funzione di built-in "open", un file di testo oppure un file tipo /etc/fstab, indirizzando il suo output in un frame, dotato di listbox, creato con tkinter.

ora vorrei poter indirizzare allo stesso output gui, un file di tipo shared object (.so per capirci) tipo /usr/bin/lsblk oppure /usr/bin/sensors.

ci ho provato conoscendo, in teoria..., i moduli subprocess ed os, ma in pratica riesco solo ad instradare l'output nella shell di bash.

vi posto la porzione di codice incriminata:

from tkinter import *
import subprocess
def lsblk():
    records=subprocess.Popen('/usr/bin/lsblk').readlines()
vi posto l'errore nel debug:

Exception in Tkinter callback

Traceback (most recent call last):

  File "/usr/lib/python3.6/tkinter/__init__.py", line 1702, in __call
__

    return self.func(*args)

  File "os.py", line 20, in lsblk

    records  =subprocess.Popen('/usr/bin/lsblk').readlines()

AttributeError: 'Popen' object has no attribute 'readlines'
idee? grazie mille
ci sono riuscito con il modulo os:
indirizzo l'output del processo in un file esterno e poi lo apro, assicurandomi di avere il permesso di lettura, con la solita funzione built-in open
import os
def lsblk():
    os.system('lsblk >outfile')
    records=open('outfile', 'r').readlines()



--- Ultima modifica di noproblem in data 2018-05-29 02:07:00 ---


Pagina: 1



Esegui il login per scrivere una risposta.