Как закрыть Python 3.7.1 Shell?
Как закрыть Python 3.7.1 Shell после того как скрипт успешно отработал? Или может знаете как очистить окно? Программа ежедневно запускается из-за чего в Shell скапливается много информации.
Отслеживать
задан 10 янв 2020 в 13:00
ChikChirik ChikChirik
524 2 2 золотых знака 14 14 серебряных знаков 44 44 бронзовых знака
Вот так закрыть: quit()
10 янв 2020 в 13:04
Можешь добавить скрипт того как запускаешь? И как из скрипта выходишь?
10 янв 2020 в 13:15
После quit(), появляется сообщение do you want kill it?
10 янв 2020 в 14:55
Попробуйте посмотреть здесь, объясняется довольно подробно: stackoverflow.com/questions/19747371/…
10 янв 2020 в 19:37
0
Сортировка: Сброс на вариант по умолчанию
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
- python
- shell
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8420
Вызов и обработка скрипта Shell в Python: практики и ошибки
Для запуска shell-скрипта из Python применяется команда subprocess.run() :
Скопировать код
import subprocess subprocess.run(['./script.sh'])
Не забывайте о правах на выполнение (используйте chmod +x script.sh ) и добавьте шебанг (например, #!/bin/bash ), для того чтобы скрипт мог выполниться, как если бы вы его запустили из консоли.
Передача параметров скрипту
Как передать аргументы в скрипт
Добавьте аргументы в список аргументов, чтобы передать их:
Скопировать код
subprocess.run(['./script.sh', 'arg1', 'arg2']) # скрипт script.sh примет их
Если команда представлена строкой, её можно безопасно разделить на аргументы при помощи shlex.split() :
Скопировать код
import shlex, subprocess command = './script.sh arg1 arg2' # Изначально это строка subprocess.run(shlex.split(command)) # Преобразуем в список для корректного запуска
Перехват вывода скрипта
Для получения stdout и stderr используйте subprocess.PIPE :
Скопировать код
result = subprocess.run(['./script.sh'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, errors = result.stdout, result.stderr
Если вам нужен только вывод, то вы можете использовать subprocess.check_output() :
Скопировать код
output = subprocess.check_output(['./script.sh']) # Мы перехватим весь вывод!
Запускаем скрипт элегантно
Обработка ошибок и исключений
Будьте готовы к возможным ошибкам выполнения, таким как subprocess.CalledProcessError , которые свидетельствуют о ненулевом статусе выхода, и используйте try-except для их обработки:
Скопировать код
try: subprocess.check_call(['./script.sh']) except subprocess.CalledProcessError as e: print(f'Произошла ошибка: ') # Мы перехватим и обработаем её
Проверяйте статус выхода для контроля успешности выполнения:
Скопировать код
process = subprocess.run(['./script.sh']) if process.returncode != 0: # Здесь что-то пошло не так # Обработка исключения
Продвинутое использование subprocess
Для сложных взаимодействий и управления вводом-выводом используйте subprocess.Popen() :
Скопировать код
with subprocess.Popen(['./script.sh'], stdout=subprocess.PIPE) as proc: log.info(proc.stdout.read()) # Отслеживаем, что выведет процесс
Безопасность превыше всего!
Избегаем уязвимостей безопасности
Не используйте shell=True , чтобы не создавать уязвимостей безопасности. Будьте осторожны с входящими данными и предпочитайте проверенные значения.
Обеспечиваем надёжность скрипта
Ваш скрипт должен быть надёжным. Используйте проверенные источники, бережно храните скрипты и тщательно проверяйте сторонние скрипты на безопасность.
Визуализация
Вашими действиями при вызове shell-скрипта из Python можно представить как управление с помощью пульта () высокотехнологичным смарт-телевизором ():
Как выйти из shell в Django в PyCharm
Здравствуйте. Как выйти из shell в Django. Вошел туда с помощью команды manage.py shell и не могу теперь выйти. Нажимаю Ctrl + C выходит вот это сообщение. Мне нужно обратно в окружение вернуться. Подскажите пожалуйста.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как в PyCharm создать проект Django?
Что сделал: 0. Установил PyCharm 3 CE 1. Установил Python33 2. Установил Django-1.5.4 3.
Как установить django на Pycharm и windows?
Не удаётся создать проект для django. Ввёл в терминале описанную команду "django-admin startproject.
Как экспортировать и импортировать Django проект в PyCharm?
Есть ПК и ноутбук. И там и там стоит python 3.4. На компе Django 1.8.5, на ноутбуке Django 1.9. И.
Просто Лис
5762 / 3554 / 1063
Регистрация: 17.05.2012
Сообщений: 10,405
Записей в блоге: 9
exit()
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Django в pycharm
подскажите можно ли в комюните версии создать изначально django проект?
Не могу выйти из EFI Shell version 2.40
Здравствуйте. После перезагрузки моноблока стал вместо Ubuntu запускаться EFI Shell version 2.40.
Установка Django на Pycharm
Помогите! Устанавливаю Django для pycharm(2018.3.3 x64), питон — последняя версия(3.7.2), .
Django + pycharm 2018
Есть несколько вопросов, по связке, прошу помочь в их решении прежде всего, нужно, чтобы из.
Можно ли написанную в pycharm программу запустить прямо в shell?
В wing ide, которым пользовался удобно было , что запустил программу, затем в python shell можно с.
Открыть проект django в pycharm
Здравствуйте,подскажите ,пожалуйста,как открыть проект ,скачанный с github в pycharm ? .
Или воспользуйтесь поиском по форуму:
How to completely exit Scrapy shell?
I run my shell using inspect_response() function. I’d like to exit Scrapy shell, so I use Ctrl-D (or Ctrl-Z in Windows) to do this. However, I cannot completely do this, because Spider crawls consecutive URLs, so new Scrapy shells are executed. Do you know any shortcuts to do this without closing the terminal?
def parse_volumes(self, response): all_issues = response.css('h6 a') for issue in all_issues: issue_url = issue.css('::attr(href)').get() yield scrapy.Request(issue_url, callback = self.parse_issue) def parse_issue(self, response): for article in response.css('tr'): access = article.css('.accessIconContainer div').xpath('./img/@alt').get() inspect_response(response, self)