On 2019-09-01 21:02, Spencer Du wrote:
Hi

I have code for GUI and MQTT. In GUI.py I have "def loadGUI" which loads up a 
GUI file if the file exists in current directory. I want to add the file name to a list 
when a file is imported and for each subsequent file that is imported I want the file 
name to be imported to the same list and print the list or create a new list but with the 
imported file named added to list which has the existing file names that have already 
been imported. I was wondering how I do this. By the way run GUI.py to test this and 
test1.py and test2.py are the files which can be used to import GUI .

GUI.py
[snip]
import json

[snip]
     def loadGUI(self):
         print("Searching file", self.fileName_UI)
         try:
             module = __import__(self.fileName_UI)
             my_class = getattr(module, "SubWindow")

             sub = QMdiSubWindow()

             sub.setWidget(my_class())
             sub.setWindowTitle("New GUI:  " + self.fileName_UI)
             self.mdi.addSubWindow(sub)
             sub.show()

             print("creating new instance " + self.fileName_UI)
             client = device("Device")
             client.run()

             client.loop_start()  # start the loop
             device_message = self.fileName_UI
             time.sleep(2)
             print("Subscribing to topic", 
"microscope/light_sheet_microscope/UI")
             client.subscribe("microscope/light_sheet_microscope/UI")
             print("Publishing message to topic", 
"microscope/light_sheet_microscope/UI")
             client.publish("microscope/light_sheet_microscope/UI", json.dumps({"type": "device", 
"payload":{"name": self.fileName_UI, "cmd": "adding device"}}, indent=2))
             time.sleep(1)  # wait
             client.loop_stop()  # stop the loop
             print("Device added" + "\n")

This is a local name, local to the method.

             listofdevice = []
             listofdevice.append(self.fileName_UI)
             print(listofdevice)

You could store the list in a file: read the current list from the file and then write the modified list to the file. The file won't exist initially, so you can treat that as the list being empty.

You're already importing the json module, so you could read/write it as JSON.

Also, _don't_ use a "bare" except like here:

         except:

because catches _all_ exceptions. Instead, catch only those you're prepared to handle.

[snip]
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to