Программное редактирование исходного кода Python

StackOverflow https://stackoverflow.com/questions/32385

  •  09-06-2019
  •  | 
  •  

Вопрос

Это то, что, я думаю, было бы очень полезно.По сути, я бы хотел, чтобы был способ редактировать исходный код Python программно, не требуя вмешательства человека.Есть пара вещей, которые я хотел бы с этим сделать:

  1. Отредактируйте конфигурацию приложений на Python, которые используют исходные модули для настройки.

  2. Настройте "шаблон", чтобы я мог настраивать исходный файл Python "на лету".Таким образом, я могу настроить систему "проект" в приложении с открытым исходным кодом, над которым я работаю, и разрешить настраивать определенные файлы.

Вероятно, я мог бы написать что-нибудь, что могло бы сделать это само, но я вижу, что это открывает множество проблем типа "дьявол кроется в деталях".Есть ли какие-либо способы сделать это в настоящее время, или мне просто придется стиснуть зубы и реализовать это самому?

Это было полезно?

Решение

Стандартная библиотека Python предоставляет довольно хорошие возможности для работы с исходным кодом Python;обратите внимание на маркировать и анализатор модули.

Другие советы

Большинство из этих вещей могут быть определены программно на Python, используя такие модули, как sys, os и специальный _файл_ идентификатор, который сообщает вам, где вы находитесь в пути к файловой системе.

Важно иметь в виду, что при первом импорте модуля он будет выполнять все, что находится в файловой области, что важно для разработки системно-зависимого поведения.Например, модуль os в основном определяет, какую операционную систему вы используете при импорте, а затем соответствующим образом корректирует ее реализацию (импортируя другой модуль, соответствующий Linux, OSX, Windows и т.д.).

В этой функции много мощи, и что-то в этом роде, вероятно, то, что вы ищете.:)

[Редактировать] Я также использовал socket.gethostname() в некоторых редких, хакерских случаях.;)

У меня была такая же проблема, и я просто открыл файл и произвел некоторую замену:затем перезагрузите файл в интерпретаторе Python.Это прекрасно работает, и это легко сделать.

В противном случае AFAIK вам придется использовать некоторые объекты conf.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top