На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > Python3 обработка большого файла
      Как запустить обработку файла после отрисовки окна?
      ExpandedWrap disabled
        #!/usr/bin/python
        from gi.repository import Gtk
         
        class MyWindow(Gtk.Window):
         
            def __init__(self):
                Gtk.Window.__init__(self, title="Hello World")
         
                self.button = Gtk.Button(label="Click Here")
                self.button.connect("clicked", self.on_button_clicked)
                self.add(self.button)
         
            def on_button_clicked(self, widget):
                print("Hello World")
         
        win = MyWindow()
        win.connect("delete-event", Gtk.main_quit)
        win.show_all()
        Gtk.main()
        Это что, минимальное приложение из набора примеров PyGTK?
        Цитата SeniorAndy @
        Как запустить обработку файла после отрисовки окна?

        В чём вопрос-то? Открывай и обрабатывай.
          Это я скопировал пример из документации.
          На какое событие мне нужно добавить функцию расчета?

          Файл более 200мб и обработка будет идти долго. Я хочу что бы окно вывелось на экран, а потом будет нужно запустить функцию загрузки файла и обработки файла. И в процессе обработки я буду выводить прогресс бар. Как делать сам прогресс бар я уже нашел.
          Пересмотрел все примеры, но везде создается окно, на котором рисуются разные элементы с их обработчиками, ситуация когда после вывода окна необходимо сделать какие-то действия не рассмотрена.
          По документации тоже не удалось найти нужное событие.

          Added
          Вопрос решён
            Обработка файла должна быть в одном потоке, GUI - в другом. Поток для обработки можно создать хоть где. Файл, кстати, по возможности лучше не грузить целиком, а обрабатывать частями или прямо с диска.
              Как работать с потоками?

              У нас эту задачу мы делали в консоле скриптом, но сейчас лучше построить графики, поэтому используем Gtk.
              Загружать файл частями в этой конкретной задаче не получится, поэтому загружаем целиком, расход памяти занимает +2Гб после запуска скрипта из консоли - это не страшная потеря.
              Анализ данных делаем только для себя, скрипт можно сказать, одноразовый.

              Но хорошую документацию о потоках и как грамотно с ними работать, почитал бы с удовольствием.
                Какой Python?
                Если 2 - https://www.google.ru/search?q=python+multithreading
                Если 3 - можно посмотреть на https://docs.python.org/3.4/library/asyncio.html
                  Python 3
                  Заготовок старых скриптов нет, поэтому сразу делаем на новой версии.
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0240 ]   [ 15 queries used ]   [ Generated: 28.03.24, 21:43 GMT ]