Есть ли способ выбрать определенные элементы из отдельного текстового файла в Python? - PullRequest
1 голос
/ 22 января 2020

Я начал делать решатель анаграмм с Python, но так как я использовал много слов (каждое слово в словаре Engli sh), я не хотел, чтобы они были массивом в моем Python файл и вместо этого они были в отдельном текстовом файле с именем dictionaryArray2.txt.

Я могу легко импортировать свой текстовый файл и отображать мои слова на экране, используя Python, но я не могу найти способ выбрать конкретный c элемент из массива, а не отображение их всех.

Когда я делаю print(dictionary[2]), он печатает вторую букву всего файла, а не второй элемент массива. Я никогда не получаю никаких ошибок. это просто не работает.

Я пробовал несколько вещей, но все они имеют одинаковый вывод.

Мой код ниже:

f = open("dictionaryArray2.txt", "r")
dictionary = f.read()
f.close()

print(dictionary[2])

Ответы [ 2 ]

0 голосов
/ 22 января 2020

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

apple
bat

Примерно так:

dictionary = ['apple', 'bat']

Есть существующий ответ, который может предложить несколько полезных примеров кода , но вкратце f.read() прочитает весь объект файла f. f.readlines(), с другой стороны, перебирает каждую строку по одной за раз.

Цитируя официальный Python документ :

Если вы хотите прочитать все строки файла в списке, вы также можете использовать list(f) или f.readlines().

0 голосов
/ 22 января 2020

Если вы хотите разделить содержимое dictionaryArray2 на отдельные слова, выполните:

f = open("dictionaryArray2.txt", "r")
dictionary = f.read()
f.close()

print(dictionary[2])

Если вы хотите разделить содержимое dictionaryArray2 на отдельные строки, выполните:

f = open("dictionaryArray2.txt", "r")
dictionary = f.readlines()
f.close()

words = dictionary.split()
print(words[2])
...