Как получить массив из текстового файла с записанным в нем массивом? - PullRequest
0 голосов
/ 27 мая 2020

Вот мой код ниже. Я пытаюсь создать текстовый файл, который позволяет вам редактировать ключевые слова, используемые в программе.

words = ['bob', 'jones', 'billy', 'josh']

try:
    with open('./keywords.txt', "x", encoding="utf-8") as g:
        g.write(str(words) + '\n\n' + 'EDIT THE KEYWORDS BY ADDING OR REMOVING THE TEXT\n' + 'Make sure to add use the current format in order for it to work')
except FileExistsError:
    print('Reading keywords')
    keywords = open('./keywords.txt' , "r", encoding="utf-8")
    words = keywords.readline(1)
    print(words)

когда я использую этот код, все, что выходит -

[

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Вы можете использовать ast.literal_eval(). Замените readline(1) на readline(). Вот код.

words = ['bob', 'jones', 'billy', 'josh']
import ast
try:
    with open('./keywords.txt', "x", encoding="utf-8") as g:
        g.write(str(words) + '\n\n' + 'EDIT THE KEYWORDS BY ADDING OR REMOVING THE TEXT\n' + 'Make sure to add use the current format in order for it to work')
except FileExistsError:
    print('Reading keywords')
    keywords = open('./keywords.txt' , "r", encoding="utf-8")
    words = keywords.readline()
    listobj = ast.literal_eval(words)
    print(listobj)
    print(listobj[2])

печатает

['bob', 'jones', 'billy', 'josh']
billy
0 голосов
/ 27 мая 2020

Вот как выглядит ваш текстовый файл после первого запуска программы:

['bob', 'jones', 'billy', 'josh']

EDIT THE KEYWORDS BY ADDING OR REMOVING THE TEXT
Make sure to add use the current format in order for it to work

Использование words = keywords.readline(1) считывает только 1 байт данных из строки. Вы можете использовать любую из следующих строк, чтобы вернуть полную строку:

keywords.readline()
keywords.readline(-1)

Полный код:

words = ['bob', 'jones', 'billy', 'josh']

try:
    with open('./keywords.txt', "x", encoding="utf-8") as g:
        g.write(str(words) + '\n\n' + 'EDIT THE KEYWORDS BY ADDING OR REMOVING THE TEXT\n' + 'Make sure to add use the current format in order for it to work')
except FileExistsError:
    print('Reading keywords')
    with open('./keywords.txt' , "r", encoding="utf-8") as myFile:
        file = []
        for line in myFile:
            file.append(line)
        words = file[0]
        print(words)

Вывод:

Reading keywords
['bob', 'jones', 'billy', 'josh']

>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...