Программное редактирование исходного кода Python
Вопрос
Это то, что, я думаю, было бы очень полезно.По сути, я бы хотел, чтобы был способ редактировать исходный код Python программно, не требуя вмешательства человека.Есть пара вещей, которые я хотел бы с этим сделать:
Отредактируйте конфигурацию приложений на Python, которые используют исходные модули для настройки.
Настройте "шаблон", чтобы я мог настраивать исходный файл Python "на лету".Таким образом, я могу настроить систему "проект" в приложении с открытым исходным кодом, над которым я работаю, и разрешить настраивать определенные файлы.
Вероятно, я мог бы написать что-нибудь, что могло бы сделать это само, но я вижу, что это открывает множество проблем типа "дьявол кроется в деталях".Есть ли какие-либо способы сделать это в настоящее время, или мне просто придется стиснуть зубы и реализовать это самому?
Решение
Стандартная библиотека Python предоставляет довольно хорошие возможности для работы с исходным кодом Python;обратите внимание на маркировать и анализатор модули.
Другие советы
Большинство из этих вещей могут быть определены программно на Python, используя такие модули, как sys, os и специальный _файл_ идентификатор, который сообщает вам, где вы находитесь в пути к файловой системе.
Важно иметь в виду, что при первом импорте модуля он будет выполнять все, что находится в файловой области, что важно для разработки системно-зависимого поведения.Например, модуль os в основном определяет, какую операционную систему вы используете при импорте, а затем соответствующим образом корректирует ее реализацию (импортируя другой модуль, соответствующий Linux, OSX, Windows и т.д.).
В этой функции много мощи, и что-то в этом роде, вероятно, то, что вы ищете.:)
[Редактировать] Я также использовал socket.gethostname() в некоторых редких, хакерских случаях.;)
У меня была такая же проблема, и я просто открыл файл и произвел некоторую замену:затем перезагрузите файл в интерпретаторе Python.Это прекрасно работает, и это легко сделать.
В противном случае AFAIK вам придется использовать некоторые объекты conf.