Python Forum
Using asyncio to read text file and load GUI
Thread Rating:
  • 2 Vote(s) - 2 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Using asyncio to read text file and load GUI
#1
Goal: Using wxPython, load a combo box and read in a potentially huge text file to add to the list.

I have a text file with the names parsed with commas that looks like this:

Ann Marie,Smith,[email protected]

The list could have over 100+ names in it. I left out the code that generates all the other GUI components to focus on loading the combobox and the items.

import wx import asyncio class Mywin(wx.Frame): def __init__(self, parent, title): super(Mywin, self).__init__(parent, title=title, size=(300, 200)) self.panel = wx.Panel(self) box = wx.BoxSizer(wx.VERTICAL) self.eventloop() box.Add(self.combo, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 5) box.AddStretchSpacer() self.panel.SetSizer(box) self.Centre() self.Show() #code to display and position GUI components left out async def readlist(self): filename = 'employees.txt' empList = [] with open(filename) as f_obj: for line in f_obj: empList.append(line) return empList async def managecombobox(self, loop): task = loop.create_task(self.readlist()) return_value = await task self.combo = wx.ComboBox(self.panel, choices=return_value) def eventloop(self): event_loop = asyncio.get_event_loop() try: event_loop.run_until_complete(self.managecombobox(event_loop)) finally: event_loop.close() def OnCombo(self, event): self.label.SetLabel("You selected" + self.combo.GetValue() + " from Combobox") app = wx.App() Mywin(None, 'ComboBox Demo') app.MainLoop() 
Questions:
  1. Is my use of asyncio appropriate given that I'm reading what will be a huge text file?
  2. In my readList(self): I return a list(empList) of the employees. I understand that lists aren't thread-safe. In the way that I used it, is it okay? If not, what should be done?
  3. In my managecombobox(self, loop) I set the combobox component. I understand that GUI components are not thread-safe as well. Is setting the combo box with returned list(i.e. return_value) okay?

Reply
#2
A file with 100+ or 1000 names is a small file.
I think you do not need async.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Load a Folium map into a pdf-file Thats_Leet 0 2,111 Jan-01-2025, 08:13 PM
Last Post: Thats_Leet
  How to read a file as binary or hex "string" so that I can do regex search? tatahuft 3 2,848 Dec-19-2024, 11:57 AM
Last Post: snippsat
  Read TXT file in Pandas and save to Parquet zinho 2 2,444 Sep-15-2024, 06:14 PM
Last Post: zinho
  Pycharm can't read file Genericgamemaker 5 2,963 Jul-24-2024, 08:10 PM
Last Post: deanhystad
  Python is unable to read file Genericgamemaker 13 7,832 Jul-19-2024, 06:42 PM
Last Post: snippsat
  Connecting to Remote Server to read contents of a file ChaitanyaSharma 1 4,739 May-03-2024, 07:23 AM
Last Post: Pedroski55
  Recommended way to read/create PDF file? Winfried 3 14,504 Nov-26-2023, 07:51 AM
Last Post: Pedroski55
  python Read each xlsx file and write it into csv with pipe delimiter mg24 4 5,693 Nov-09-2023, 10:56 AM
Last Post: mg24
  read file txt on my pc to telegram bot api Tupa 0 3,988 Jul-06-2023, 01:52 AM
Last Post: Tupa
  parse/read from file seperated by dots giovanne 5 3,215 Jun-26-2023, 12:26 PM
Last Post: DeaD_EyE

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020
This forum uses Lukasz Tkacz MyBB addons.
Forum use Krzysztof "Supryk" Supryczynski addons.