@Zura_aps

Как можно обратиться к списку в файле,если используешь функцию open?

Есть файл,который я открываю через функцию open(аргумент "а"),в этом файле есть уже существующий список со словами,я хочу записывать в этот список новые значения ,но когда я так делаю,то слово просто добавляется в конец текстом. Например:spisok=['какие-то значения']слово которое я ввёл. То есть слово идёт уже после списка ,а я хочу ,чтобы оно помещалось в этот список. Может есть какой-то метод или параметр ,который решит мою проблему ?
Код:

v=input('Введите слово/')
def input_words_english(v):
     r = []
     f = open('test.txt','a')
     f.write(v)
     f.close()

r.append(v)
print(r)


Это только часть кода,но основная часть
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 3
Lord_of_Rings
@Lord_of_Rings
Python developer
Лучше перейти на другой формат хранения данных, например JSON или CSV
Ответ написан
Комментировать
@igor6130
В общем, есть такое решение.
def input_words_english(v):
    with open("test.txt", "r") as file:
        old_data = file.read()
    
    with open("test.txt", "w") as file:
        file.write(f"{old_data[:len(old_data)-2]}, '{v}']")

То есть вы просто сначала открываете файл, копируете из него строку. Затем закрываете, открываете снова, но уже на запись, и перезаписываете частью исходной строки плюс новыми данными. Но все равно выглядит это все не очень.
Ответ написан
@Jack444
v=input('Введите слово/')
def input_words_english(v):
     with open('test.txt', '+') as file:
        exec(file.read())
        Spisok.append(v)
        file.seek(0)
        file.write(f'{Spisok=}')
        return Spisok

print(input_words_english(v))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы