Как задержать консоль python
Я подаю заявление в python из Windows. Когда я запускаю его в консоли, он останавливается, показывает ошибку и закрывается. Я не вижу ошибки, потому что она слишком быстрая, и я не могу ее прочитать. Я редактирую код с IDLE (программа, которая шла с python, когда я ее устанавливал), и когда я запускаю ее с python shell, ошибок нет. Я бы запустил его с IDLE, но когда я использую консоль, она имеет больше возможностей.
Я не знаю, почему это происходит. Мне нужна твоя помощь.
3 ответа
Ладно, значит, у меня проблема. Мой код печатает текст, давая возможность ввести любую из трех вещей. Если вы наберете один из них, он напишет строку. Но по какой-то причине он просто закрывается мгновенно (в visual studio я бы использовал Ctrl + f5) после печати текста, но из-за того, что я.
Запустите программу с уже открытого terminal. Откройте командную строку и введите:
Для этого вам нужен исполняемый файл python в вашем пути. Просто проверьте, как редактировать переменные среды на windows, и добавьте C:\PYTHON26 (или любой каталог, в который вы установили python).Когда программа завершится, вы вернетесь к приглашению CMD windows вместо того, чтобы закрывать код window.Add, чтобы ждать в конце вашего сценария. Добавление .
. в конце скрипта заставляет его ждать ключа ENTER. Этот метод раздражает, потому что вам нужно изменить сценарий и не забыть удалить его, когда вы закончите.
Запустите программу из командной строки Windows. Это не будет автоматически закрыто, когда программа завершится.
Если вы запустите программу, дважды щелкнув значок файла .py , то Windows закроет окно, когда ваша программа завершится (независимо от того, была ли она успешной или нет).
Создайте текстовый файл в каталоге программы, т. е. там, где находится ваш скрипт. Измените расширение на .bat , например text.bat . Затем отредактируйте текстовый файл и напишите:
Теперь вы можете запустить программу без ввода в командной консоли, дважды щелкнув файл bat, и окно консоли не закроется .
Похожие вопросы:
У меня есть следующая задача, поставленная в ConEMU TASKKILL /IM iexplore.exe /F После выполнения задачи открывается окно консоли с диалогом подтверждения Press Enter or Esc to close console window.
Я экспериментирую с unicode символом и беру unicode значения со страницы Википедии Проблема в том, что моя консоль отображает все элементы управления C0 и основные латинские символы unicode, то есть.
Я бы хотел, чтобы этот код повторялся сам, чтобы моя программа никогда не закрывалась. import os print Unesite navedene informacije za ucenika class Ucenik1(object): docstring for Ucenik1 def.
В моем конструкторе form1 у меня есть: while (splash_flag == true) < splash.Show(); Thread.Sleep(3000); splash_flag = false; >if (splash_flag == false) < splash.Close(); >.
Ладно, значит, у меня проблема. Мой код печатает текст, давая возможность ввести любую из трех вещей. Если вы наберете один из них, он напишет строку. Но по какой-то причине он просто закрывается.
Что-то, чего мне не хватает с тех пор, как я использовал Eclipse и PyDev, - это возможность запустить консоль и добавить все исходные папки в путь Python. Я мог бы легко просто импортировать любой.
Здравствуйте друзья я хочу спросить их как сделать так чтобы консоль rails не показывала мне sqlite consult Loading development environment (Rails 4.0.5) 2.0.0-p481 :001 > last_user=User.last.
Я работаю Python, и мне нужен регистратор, поэтому я решил начать использовать RotatingFileHandler. Ниже приведен мой файл logging.conf [loggers] keys=root [handlers] keys=logfile [formatters].
Когда я запускаю свою программу Python с отладчиком в Eclipse с PyDev (плагин Python для Eclipse), консоль всегда разделяется на два windows. Один, где я действительно могу ввести код, а другой.
Я хочу, чтобы моя программа python 2.7 получала индекс конкретных символов в строке. Так вот как это: Получите индекс скобок [ и ] в любой строке. Например: Hello World [These brackets] Hello World.
Знакома ли вам ситуация, когда программа Python должна выполняться не сразу? В большинстве случаев требуется, чтобы код запускался как можно скорее. Однако порой перед работой оптимальнее будет дать программе немного поспать.
Содержание статьи
В Python есть возможность вызвать функцию sleep() для симуляции задержки в выполнении программы. Быть может, вам нужно дождаться загрузки, скачивания или появления графического объекта на экране. Также может потребоваться сделать паузу между вызовами к веб API или запросами к базе данных. В таких случаях поможет добавление вызова функции sleep() в программу.
Главные аспекты данного руководства по вызову sleep() в Python:
- time.sleep() ; ; ; ;
- Графический пользовательский интерфейс GUI.
Данная статья предназначена для разработчиков Python среднего уровня, что стремятся повысить свою квалификацию. Если это похоже на вас, приступим!
Вызов sleep() через time.sleep()
В Python есть встроенная поддержка для погружения программы в сон. У модуля time есть функция sleep(), что позволяет отсрочить выполнение вызываемого потока на указанное количество секунд.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Далее дан пример использования time.sleep() :
При запуске кода из консоли, задержку нужно проводить перед вводом нового оператора в REPL.
На заметку: В Python 3.5 разработчики слегка изменили поведение time.sleep() . Благодаря новой системе вызова sleep() эффект отсрочки будет длиться как минимум на продолжении указанного количества секунд, даже в том случае, если сон прерывается сигналом. Однако, это не касается случаев, если сигнал является признаком вызова исключения.
Вы можете протестировать, как долго продлиться сон с помощью модуля Python timeit:
Здесь модуль timeit запускается с параметром -n , что указывает timeit , сколько раз выполнять последующий оператор. Можно заметить, что timeit выполнил оператор 3 раза, а лучшее время длилось 3 секунды, чего и следовало ожидать.
По умолчанию timeit будет запускать код миллион раз. Если бы вы запустили вышеуказанный код, оставив значение -n по умолчанию, тогда при 3 секундах на итерацию код завис бы примерно на 34 дня! У модуля timeit есть несколько других настроек для командной строки, с которыми можно ознакомиться в документации.
Создадим что-то более практичное. Системному администратору всегда нужно быть в курсе, если какой-то из сайтов упал. Вы бы хотели иметь возможность проверить код состояния сайта регулярно, но запрашивать веб сервер постоянно нельзя, ведь это сильно повлияет на производительность. В Python одним из простых способов совершить такую проверку является использование системного вызова sleep() :
Если ошибок нет, код спокойно выполняется. Вне зависимости от того, что произойдет, программа уходит в сон на 60 секунд. Это значит, что доступ к сайту будет раз за минуту. URL, используемый в примере, содержит ошибки. Ежеминутный вывод на консоли выглядит следующим образом:
Вызов sleep() с декораторами
В некоторых случаях нужно повторно запустить неудачно выполненную в первый раз функцию. Зачастую это происходит, когда требуется повторить загрузку файла ввиду ранней перегрузки сервера. Как правило, никто не хочет делать частые запросы на серверы, поэтому добавление в Python вызова sleep() между каждым запросом предпочтительно.
Другим возможным случаем использования sleep() является необходимость проверки состояния пользовательского интерфейса во время автоматического теста. В зависимости от компьютера, на котором запускается тест, пользовательский интерфейс может грузиться быстрее или медленнее обычного. Это может изменить отображаемое на экране во время проверки программой чего-то.
В данном случае можно указать программе, чтобы та погрузилась в сон на мгновенье и затем проверить все опять через несколько секунд. Это может означать разницу между прохождением или провалом теста.
Для добавления системного вызова sleep() в Python можно использовать декоратор в каждом из данных случаев. Разберем следующий пример:
sleep() является вашим декоратором. Он принимает значение timeout и количество раз для повтора retry , что по умолчанию равняется 3. Внутри sleep() есть другая функция, the_real_decorator() , которая принимает декорируемую функцию.
В конечном итоге самая внутренняя функция wrapper() принимает аргументы и ключевые слова, которые вы передаете декорируемой функции. Здесь все и происходит! Используется цикл while, чтобы повторить вызов функции. Если возникла ошибка, вызывается time.sleep() , увеличивается счетчик попыток retries и повторяется попытка запуска функции.
Теперь переписывается uptime_bot() для использования нового декоратора:
Здесь вы декорируете uptime_bot() с помощью sleep() в 3 секунды. Вы также удалили оригинальный цикл while и старый вызов sleep(60) . Декоратор теперь позаботится об этом.
Другое изменение состоит в добавлении raise внутри блоков, отвечающих за обработку исключений. Это нужно для правильной работы декоратора. Можно также написать декоратор, чтобы он отвечал за ошибки, однако ввиду того, что исключения касаются только urllib , может быть лучше сохранить декоратор в текущем состоянии. В таком случае он будет работать c более широким ассортиментом функций.
На заметку: При желании более подробно узнать о том, как справляться с исключениями в Python, можете ознакомиться со статьей: Обработка исключений в Python
Декоратору можно добавить несколько улучшений. Если число попыток заканчивается, и он по-прежнему проваливается, тогда можно сделать так, чтобы он повторно вызвал последнюю ошибку. Декоратор подождет 3 секунды после последней неудачи, что не всегда нужно. Можете попробовать поэкспериментировать самостоятельно.
Вызов sleep() в потоках
Могут возникнуть ситуации, когда в Python требуется добавить вызов sleep() для потока. К примеру, запуск скрипта миграции для базы данных с миллионами записей. Здесь важно избежать простоя, а также не ждать дольше необходимого для завершения миграции, поэтому можно использовать потоки.
На заметку: Потоки являются одним из методов использования конкурентности в Python. Можно запустить несколько потоков одновременно, чтобы увеличить производительность приложения. Если потоки в Python являются для вас новой темой, ознакомьтесь со статьей модуль threading.
Чтобы клиенты не замечали какого-либо замедления, каждый поток должен работать в течение короткого периода времени, а затем уходить в сон. Есть два способа сделать это:
Я хотел бы знать, как поместить задержку в скрипт Python.
Вот еще один пример, когда что-то запускается примерно раз в минуту:
Вы можете использовать функцию sleep() в модуле времени. Может принимать аргумент с плавающей запятой для субсекундного разрешения.
Немного веселья с сонным генератором .
Вопрос о задержке. Это может быть фиксированное время, но в некоторых случаях нам может понадобиться задержка, измеренная с прошлого раза. Вот одно из возможных решений:
Ситуация может быть, мы хотим делать что-то как можно более регулярно, и мы не хотим беспокоиться обо всех last_time , next_time все вокруг нашего кода.
Генератор зуммера
Следующий код ( sleepy.py ) определяет генератор buzzergen :
Вызов обычного зуммера
И запустив его, мы видим:
Мы также можем использовать его непосредственно в цикле:
И, запустив его, мы можем увидеть:
Как мы видим, этот зуммер не слишком жесткий и позволяет нам справляться с регулярными сонными интервалами, даже если мы спим и выходим из обычного графика.
В одной теме я предлагаю функцию сна:
Это фактически приостанавливает обработку потока, в котором он вызывается операционной системой, что позволяет другим потокам и процессам выполняться во время сна.
Используйте его для этой цели или просто для задержки выполнения функции. Например:
"ура!" напечатано через 3 секунды после того, как я нажму Enter .
Пример использования sleep с несколькими потоками и процессами
Опять же, sleep приостанавливает ваш поток - он использует почти нулевую вычислительную мощность.
Чтобы продемонстрировать, создайте такой скрипт (сначала я попытался сделать это в интерактивной оболочке Python 3.5, но подпроцессам не удалось найти party_later по какой-то причине):
Пример вывода из этого скрипта:
Многопоточность
Вы можете инициировать функцию, которая будет вызываться позднее в отдельном потоке, с помощью потокового объекта Timer :
Пустая строка показывает, что функция распечатана по моему стандарту, и мне пришлось нажать Enter , чтобы убедиться, что я был в приглашении.
Достоинством этого метода является то, что, пока ожидал поток Timer , я мог делать другие вещи, в данном случае, нажмите Enter один раз - перед выполнением функции (см. первое пустое приглашение).
В многопроцессорной библиотеке нет соответствующего объекта. Вы можете создать его, но, вероятно, по какой-то причине его не существует. Подпоток имеет гораздо больше смысла для простого таймера, чем целый новый подпроцесс.
Мне известно 5 методов: time.sleep() , pygame.time.wait() , pyplot.pause() , matplotlib, .after() и driver.implicitly_wait() .
time.sleep() (не использовать при использовании Tkinter):
pygame.time.wait() (не рекомендуется, если вы не используете окно pygame, но можете сразу же выйти из окна):
функции matplotlib pyplot.pause() (не рекомендуется, если вы не используете график, но вы можете выйти из графика мгновенно):
Метод .after() (лучше всего с Tkinter):
Наконец, метод driver.implicitly_wait() (селен):
Задержки выполняются с помощью библиотеки времени , в частности, time.sleep() функция.
Просто чтобы подождать секунду:
Это работает, потому что, делая:
Вы извлекаете функцию сна только из библиотеки времени (с использованием import time ), что означает, что вы можете просто вызвать его с помощью:
Вместо того, чтобы печатать
Который неуклюже долго печатать.
С помощью этого метода вы не получите доступ к другим функциям времени. библиотека , и у вас не может быть переменной с именем sleep . Но вы можете создать переменную с именем time .
Выполнение from [library] import [function] (, [function2]) - это здорово, если вам нужны только определенные части модуля.
Вы также можете сделать это как
и у вас будет доступ к другим функциям библиотеки времени например time.clock() , пока вы вводите time.[function]() , но вы не можете создать переменную времени.
Лучший способ отложить время в Python - это использовать библиотеку time . Вот так:
Просто замените 10 на количество секунд, которое вы хотите отложить. Вы можете использовать форматы, такие как «10 .1», «5.07» и т. Д.
Не рекомендуется использовать это с Tkinter
Задержки могут быть реализованы с использованием трех методов.
Давайте начнем с самого простого:
Вторым методом задержки будет использование метода неявного ожидания:
Третий метод более полезен, когда вам нужно подождать, пока не будет выполнено определенное действие, или пока не будет найден элемент:
В этом уроке мы узнаем о методе time sleep() в python. Функция используется для добавления задержки в выполнении программы. Мы можем использовать функцию sleep(), чтобы остановить выполнение программы на заданное время в секундах. Обратите внимание, что функция ожидания времени фактически останавливает выполнение только текущего потока, а не всей программы.
Синтаксис
sleep() – это метод модуля времени в Python. Итак, сначала мы должны импортировать модуль времени, затем мы можем использовать этот метод. Способ использования функции sleep():
Здесь аргумент метода sleep() t находится в секундах. Это означает, что когда выполняется инструкция time.sleep(t), следующая строка кода будет выполнена через t секунд. Смотрите следующий пример:
Если вы запустите приведенный выше код, вы увидите, что вторая печать выполняется через 5 секунд. Таким образом, вы можете отложить свой код по мере необходимости.
Аргумент может иметь плавающее значение для более точной задержки. Например, вы хотите сделать задержку на 100 миллисекунд, что составляет 0,1 секунды, как показано ниже:
Пример
Давайте посмотрим на следующий пример функции sleep в Python.
Прошедшее время больше 5, потому что каждый раз в цикле for выполнение останавливается на 1 секунду. Дополнительное время связано со временем выполнения программы, планированием потоков операционной системы и т.д.
Различное время задержки сна
Иногда может потребоваться задержка на разные секунды. Сделать это можно следующим образом:
Эффектная печать с использованием sleep()
Метод при многопоточности
Функция time sleep() – очень важный метод для многопоточности. Ниже приведен простой пример, показывающий, что функция ожидания времени останавливает выполнение текущего потока только при многопоточном программировании.
На изображении ниже показан результат, полученный в приведенном выше примере.
Читайте также: