В настоящее время у меня есть файл python с кучей глобальных переменных со значениями. Я хочу постоянно изменять эти значения из отдельного сценария python. Я пробовал setattr и такой, но он, похоже, не работает. Есть ли способ сделать это?Как изменить значение переменной в файле python из сценария python
ответ
Короткий ответ: не надо. Это не стоит того.
Похоже, вы пытаетесь создать файл конфигурации, а затем обновите его приложение. Вы должны попробовать использовать ConfigParser, встроенный в модуль, который может читать и записывать файлы конфигурации для вас с ограниченной хлопот: http://docs.python.org/library/configparser.html
currently have a python file with a bunch of global variables with values
Давайте представим, что это выглядит следующим образом. globals.py
this = 1
that = 2
И нет ничего в этом файле. Ничего.
Далее предположим, что этот файл используется следующим образом.
from globals import *
Давайте дальше делать вид, что у нас есть некоторые моделирования, которые необходимо «обновить» globals.py
import os
os.rename("globals.py", "globals.bak")
with open("globals.py", "w") as target:
for variable in ('some', 'list', 'of', 'sensible', 'globals'):
target.write("{0!s} = {1!r}".format(variable, globals()[variable])
В принципе, вы воссоздавать код Python из вашего глобального словаря.
Это ужасное решение. Пожалуйста, на самом деле не используйте его.
Я создал соответствующие файлы python с указанным выше кодом, чтобы проверить его, и я получаю эту ошибку: python test.py Traceback (последний последний вызов): Файл «test.py», строка 7, в
Да. Вы делаете что-то неправильно. Вы печатаете, не задумываясь. Иногда у зарегистрированного кода есть ошибки. Вам нужно подумать всего за секунду, прежде чем вводить текст, чтобы понять, понимаете ли вы код. –
Может быть, я просто не понимаю питона достаточно хорошо, так как я относительно новичок в нем? Я набрал ваш код, продумал его, поймал пропавших парнеров в конце. Но я думал, что глобалы (до вашего редактирования) ссылаются на файл или, возможно, на встроенную переменную python. В любом случае, спасибо за ваше решение. Я пробовал как твои, так и @ Карла. – lango
- 1. Как изменить значение переменной в одном скрипте python из другого сценария python
- 2. Изменить версию исполнения Python из сценария Python
- 3. Как запустить все тесты в файле python из сценария python?
- 4. Python: изменить значение переменной из другого потока
- 5. Как изменить значение переменной из другого .py файла в Python
- 6. Python, как изменить значение переменной на лету
- 7. изменить значение переменной в программе python из командного файла
- 8. Установка переменной env из сценария Python
- 9. Как изменить значение переменной в другом файле?
- 10. возвращает значение переменной из подпроцесса в python
- 11. Изменить путь CMD из сценария Python
- 12. Создать псевдоним/изменить путь из сценария Python
- 13. Редактор Vim в файле сценария python
- 14. Как запустить команду python из сценария python?
- 15. Как получить доступ к глобальной переменной C из сценария Python
- 16. Возвращаемое значение из скрипта Python переменной Jenkins
- 17. sqlalchemy в одном файле сценария python
- 18. Как изменить имя переменной в Python
- 19. Исход сценария Python из HTML
- 20. Отступы в txt-файле из сценария python в терминале
- 21. Как изменить значение переменной по ее ссылке в функции python?
- 22. Как изменить значение глобальной переменной в дочернем классе python?
- 23. переменной импорта из сценария Python в пакетный файл
- 24. Как просачиваться значение переменной в Python
- 25. изменить значение в определенном месте в текстовом файле в python
- 26. Python ошибки сценария из
- 27. Как вернуть значение из сценария оболочки в сценарии python
- 28. Упорно значение переменной в Python
- 29. Значение переменной Python в кавычках
- 30. Избегайте глобальной переменной в файле утилиты python
Вы хотите сказать, что хотите на самом деле изменить один скрипт из другого? – alternative
Интересно, может ли стандартная библиотека анализировать исходный файл Python в памяти, изменять его, а затем записывать этот файл? –
Ваш другой вопрос не по теме. Пожалуйста, ** не упоминайте об этом здесь **. Пожалуйста, удалите ссылку на «другой вопрос». Пожалуйста, сосредоточьтесь. –