- Копирование и вставка кода в интерпретатор Python
- 11 ответов
- Русские Блоги
- Интеллектуальная рекомендация
- Просмотр номера порта
- Веб-путешествие — знакомство с HTML5 первым (1)
- Установка RocketMQ
- java.net.BindException: Address already in use: bind
- Установить svn под linux
- Вам также может понравиться
- iOS12.1 использует UINavigationController + UITabBarController (UITabBar matte), после установки hidesBottomBarWhenPasted, .
- переменные среды Java
- Springboot интегрирует шаблон MongoDB
- CF 1165D почти все делители воды
- Rand (), Srand () Случайный номер сборки
- Хочу скинуть Python скрипт другу который не шарит в программировании. Как это сделать?
Копирование и вставка кода в интерпретатор Python
Существует фрагмент кода, который я хотел бы скопировать и вставить в свой интерпретатор Python. К сожалению, из-за чувствительности Python к пробелу не так просто скопировать и вставить его таким образом, который имеет смысл. (Я думаю, что пробелы становятся искалеченными) Есть ли лучший способ? Возможно, я могу загрузить фрагмент из файла. Это всего лишь небольшой пример, но если есть много кода, я бы хотел не вводить все из определения функции или копировать и вставлять строки за строкой.
class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' def disable(self): self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation self.OKBLUE = '' self.OKGREEN = '' self.WARNING = '' self.FAIL = '' self.ENDC = ''
11 ответов
Вы можете вызвать execfile (имя файла). Более или менее то же, что и импорт модуля, за исключением того, что он пропускает часть администрирования модуля и не требует, чтобы вы добавляли папку в sys.path.
EDIT: для ответа на исходный вопрос: копируемый код может быть выполнен путем вызова exec (codestring).
Вы правы, что на самом деле это не так, но я предпочитаю это решение, потому что оно не требует, чтобы вы выбирали конкретную оболочку или использовали конкретную IDE. Другие решения также превосходны, но я принял наиболее общее.
@Bryan Брайан Оукли: Вы правы, execfile (имя файла) не может быть использовано для этого. exec (codestring) может, однако.
Чтобы этот ответ был актуальным, обратите внимание, что execfile был удален из python 3. См. Stackoverflow.com/q/436198/353278
Обычно вы можете легко и безопасно выполнить вставку копий с помощью IPython, используя команды %cpaste (вручную заканчивайте код с помощью — ) и %paste (выполняйте код немедленно). Это очень удобно для тестирования кода, который вы копируете, например, с веб-страниц или из вашего редактора: эти команды даже отбрасывают для вас начальные подсказки (например, In[1] и . ).
IPython также имеет команду %run которая запускает программу и оставляет вас в оболочке Python со всеми переменными, которые были определены в программе, чтобы вы могли поиграть с ними.
Чтобы получить помощь по следующим функциям: %cpaste? , так далее.
Вы можете просто преобразовать все вкладки в пробелы и удалить пустые строки ВСЕ. Таким образом, вы сможете вставить любой код в консоль python (например: python2.6)
Вы можете просто импортировать файл в интерпретатор python. Это загрузит класс и позволит вам запустить код.
Например, создайте файл с именем «bgcolors.py» и скопируйте и вставьте свой код внутри. Затем, используя интерпретатор python, вы просто набираете «import bgcolors», и вы должны иметь возможность запускать его.
Вы можете прочитать здесь:
Второй import bgcolors в том же сеансе ничего не даст, потому что импорт «знает», что bgcolors уже импортирован.
Вместо того, чтобы явно импортировать его в оболочку, вызовите python так: python -m bgcolors.py и вы увидите среду, в которой этот модуль уже загружен.
Я думаю, что опция -m работает только для файла в sys.path. Но моего сценария нет в стандартной библиотеке.
@wpeters: работает как любой импорт. Если ваш модуль не находится в текущем каталоге, в любой bourne-совместимой оболочке вы можете вызвать python следующим образом: PYTHONPATH=/path/to/module/dir python -m bgcolors.py или любым другим способом установить среду PYTHONPATH переменная.
Вы можете использовать IPython, что намного лучше, чем python repl. Он имеет команду для ввода из внешнего редактора с помощью команды% edit.
Dreampie позволяет копировать и вставлять код с правильным отступом.
Интерфейс IDLE делает все возможное, чтобы сохранить правильный отступ вставного текста.
Мой ответ в основном посвящен копированию в стандартную оболочку python (проверяется только на linux).
В зависимости от того, откуда приходит код и как он изначально отформатирован , пробелы могут иметь значение или не иметь значения. В частности, ваш примерный фрагмент — скопированный из раздела SO-форматирования SO — это не имеет значения (предполагается, что код правильно отступом для исполняемого файла).
Пустая строка, однако, вызывает проблемы в стандартном интерпретаторе python, так как обычно это de-indent cmd оболочки. В вашем фрагменте фрагмента пустая строка, предшествующая определению функции disable() , заканчивается/выходит из определения класса преждевременно, поэтому, когда строка определения disable() появляется с ошибкой отступа, обнаружено:
>>> class bcolors: . HEADER = '\033[95m' . OKBLUE = '\033[94m' . OKGREEN = '\033[92m' . WARNING = '\033[93m' . FAIL = '\033[91m' . ENDC = '\033[0m' . >>> def disable(self): File "", line 1 def disable(self): ^ IndentationError: unexpected indent >>>
Поэтому вам просто нужно обратить внимание на эти пустые строки. Для работы над этой пустой строкой вам нужен всего 2 многострочных инструмента для копирования-вставки.
Единственное, что мне было нужно — для копирования только разделов уже вдавленного кода (например, функций из внутренних классов) — один дополнительный уровень отступов, чтобы не требовать повторного ввода отступа скопированного кода. Для этого ведущая строка if 1: перед вставкой фрагмента и Enter (т.е. Пустая строка) после трюка:
>>> if 1: . def disable(self): . self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation . self.OKBLUE = '' . self.OKGREEN = '' . self.WARNING = '' . self.FAIL = '' . self.ENDC = '' . >>>
Альтернатива использованию двух операций копирования-вставки — просто убедиться, что «пустая» строка имеет отступ с тем же количеством, что и остальная часть вашего кода. И чтобы избежать использования if 1: есть несколько альтернатив: если у вашего редактора есть выбор визуальных блоков (а не выбор строк), используйте это. Или выберите строки, которые вы хотите скопировать, и удалите отступ перед их копированием.
Существует встроенный вызов метода «область отступа и область выделения», и вы можете просто использовать его. После того, как вы вставляете много кода сразу, вы можете выбрать их все и отредактировать пробелы.
Русские Блоги
Вопрос: Скопируйте текст, откройте python и щелкните правой кнопкой мыши, чтобы вставить. Но если это ярлык на рабочем столе Python, правильная клавиша не может быть вставлена
Интеллектуальная рекомендация
Просмотр номера порта
windows+R Затем введите CMD Затем введите netstat -a Или введите Netstat -ano Нажмите Диспетчер задач Нажмите Подробную информацию, чтобы просмотреть номер PID Согласно номеру порта, PID соответствует.
Веб-путешествие — знакомство с HTML5 первым (1)
Чтобы начать фронтенд-путешествие, мы должны сначала понять некоторые базовые знания о резерве. В этом разделе будет продемонстрирована простейшая композиция страницы HTML5 и представлены исторические.
Установка RocketMQ
1. Подготовка окружающей среды 64 -битный OS Linux JDK выше 1,8 Установите Maven Команда установки заключается в следующем: wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binarie.
java.net.BindException: Address already in use: bind
Исключение: Причина: порт занят. В моем проекте это происходит потому, что одна и та же программа сокетов запускается дважды. Это исключение отличается от того, что tomcat запускал неско.
Установить svn под linux
Выполните следующую команду, чтобы установить SVN. Выполните следующую команду, чтобы просмотреть версию SVN. Выполните следующие действия, чтобы создать репозиторий: Выполните следующую команду, чтоб.
Вам также может понравиться
iOS12.1 использует UINavigationController + UITabBarController (UITabBar matte), после установки hidesBottomBarWhenPasted, .
Если вы используете систему OS12.1 UINavigationController + UITabBarController (UITabBar matte), вы столкнетесь с проблемой беспорядка макета панели вкладок в popViewControllerAnimated: Код, вызывающи.
переменные среды Java
jvm/jdk/jre 》 Jvm (виртуальная машина, компилировать код в класс) 》 Jdk (укажите пакет классов, который должен вызывать Java) 》 Jre (среда, необходимая для выполнения) Переменные среды: 》 Путь: путь, .
Springboot интегрирует шаблон MongoDB
Предисловие Основным проектом в прошлом году была разработка и применение springboot, и я собираюсь немного использовать данные springboot. Дело не в том, чтобы записывать использование api (возможно.
CF 1165D почти все делители воды
http://codeforces.com/contest/1165/problem/D Главная мысль: Введите количество раз, для каждого, введите n, затем следуйте N номер N, запрашивайте их минимальные общепринятые несколько, а затем опреде.
Rand (), Srand () Случайный номер сборки
Система предоставляет две функции в функции библиотеки для генерации случайных чисел: SRAND () и RAND (); Файл заголовка Функция определения: int rand (void), Функция функции: генерир.
Хочу скинуть Python скрипт другу который не шарит в программировании. Как это сделать?
Хочу скинуть Python скрипт другу который не шарит в программировании. Как это сделать?
Вот так выглядит моя папка с питоном:
Простой 1 комментарий
Да оно и не похоже что вы в нем шарите тоже. Хотите ярлыки ему скинуть? Ибо на скрине не папка с питоном а ярлыки из меню пуск.
Ну для работы с файлами .py, нужен сам Python
Скрипт можно в архив положить и отправить или сам файл скинуть
Вы хотите скинуть интерпретатор? Зачем он ему, если не шарит? Если вы хотите скинуть py файл, можете сжать его с помощью pyinstaller
Можешь отправить ему ссылку на установку Python 3.9/файл с установкой Python 3.9
Если хочешь ему показать код — залей его на Pastebin (pastebin.com)
Если хочешь ему скинуть сам файл, попробуй pyinstaller (Для компиляции, открой папку с файлом, далее открой консоль и введи pyinstaller -f 1.py(1.py тестовое))
Для компиляции, открой папку с файлом, далее открой консоль и введи pyinstaller -f 1.py(1.py тестовое))
lil.fxrrx, Я вполне понял что вы имеете ввиду. Но зачем вы дезинформируете людей? pyinstaller сжимает в exe, но никак не компилирует.
Yupiter7575, испанский стыд. почитай доку pyinstaller’a, вот ссылка, а то вдруг не найдешь https://pyinstaller.readthedocs.io/en/stable/#
Тут кстати подтверждается что это не компилятор.
Да и вообще, с чем вы спорите? Пайтон — интерпретируемый яп. Тут слово скомпилировать вообще не в тему
Вот что получаю