Запись элемента в список внутри другого файла

У меня 2 файла .py. Назовем их foo.py и list.py

list.py не имеет никакого кода, а просто список, который выглядит следующим образом: allowed = ['a', 'b', 'c'] Это все, что есть в list.py ...

Теперь у foo.py есть код, который в основном использует список внутри list.py, чтобы разрешить только определенные входы (которые должны быть в списке, иначе: передать)

Я добавил код, чтобы иметь возможность добавлять элементы в список изнутри программы, но я не могу этого сделать. Я пробовал использовать функцию append (). Это не вносит изменений в список ...

Пожалуйста, помогите мне отредактировать и внести изменения в список внутри list.py, предоставив для этого правильный код.

Спасибо.

Не могли бы вы, пожалуйста, редактировать и включить свой код? Действительно, нам нужен минимальный воспроизводимый пример. Иначе угадать вашу логику невозможно.

jpp 30.04.2018 13:58

Похоже, что list.py на самом деле должен быть структурой данных, такой как pickle или json, но вам нужно показать свой фактический код.

Chris_Rands 30.04.2018 13:59

Можете ли вы заменить файл .py на файл json или yaml? Или вы хотите сохранить .py

Yassine Faris 30.04.2018 14:03

И вам действительно, действительно, не следует вызывать модуль list.py, если вы планируете импортировать его в другую программу Python.

BoarGules 30.04.2018 14:54
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Скорее всего, вы отправляете копию списка, когда ваша программа работает, а затем добавляете в этот список, не влияя на исходный список в list.py

Я бы хотел убедиться, что когда вы создаете экземпляр исходного списка в list.py, вы не делаете это таким образом, который означает, что каждый раз, когда вызывается этот блок кода, список определяется снова, когда вы вызываете этот блок кода или снова работать.

Если вы пытаетесь использовать программу в foo.py для явного редактирования файла list.py, вы, вероятно, также можете просто использовать python модуль рассола, который сохраняет состояние объектов python в файл, и тогда вы сможете позже загрузите их как обычно, например:

try:
    with open(list, 'r') as file:
        yourlist = pickle.load(file)
except(FileNotFoundError):
   yourlist = ['someDefaultValue','anotherDefaultValue']

# Your code block, doing whatever you're doing

with open(list, 'w') as file:
    pickle.dump(yourlist, file)

Не зная больше о том, на что вы смотрите или что именно вы пытаетесь сделать - трудно дать лучший ответ!

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