I would like to run a command line tool to run in a separate function and passed to the button click the additional command for this program but each time I get this as a response.
takes 1 positional argument but 2 were given
from tkinter import *
import subprocessclass StdoutRedirector(object):def __init__(self,text_widget):self.text_space = text_widgetdef write(self,string):self.text_space.insert('end', string)self.text_space.see('end')class CoreGUI(object):def __init__(self,parent):self.parent = parentself.InitUI()button = Button(self.parent, text="Check Device", command= self.adb("devices"))button.grid(column=0, row=0, columnspan=1)def InitUI(self):self.text_box = Text(self.parent, wrap='word', height = 6, width=50)self.text_box.grid(column=0, row=10, columnspan = 2, sticky='NSWE', padx=5, pady=5)sys.stdout = StdoutRedirector(self.text_box)def adb(self, **args):process = subprocess.Popen(['adb.exe', args], stdout=subprocess.PIPE, shell=True)print(process.communicate())#return x.communicate(stdout)root = Tk()
gui = CoreGUI(root)
root.mainloop()
the error
Traceback (most recent call last):File "C:/Users/Maik/PycharmProjects/Lernen/subprocessExtra.py", line 33, in <module>gui = CoreGUI(root)File "C:/Users/Maik/PycharmProjects/Lernen/subprocessExtra.py", line 18, in __init__button = Button(self.parent, text="Check Device", command= self.adb("devices"))
TypeError: adb() takes 1 positional argument but 2 were given
Exception ignored in: <__main__.StdoutRedirector object at 0x013531B0>
AttributeError: 'StdoutRedirector' object has no attribute 'flush'Process finished with exit code 1
can some body help me
there is something wrong with **args