Используете методы для добавления содержимого текстового файла в словарь в Python?

Итак, у меня есть файл .txt, и я хочу использовать методы этого класса, Map, для добавления его содержимого в aDictionary.

class Map:

    def __init__(self, dataText):
        self.dataText = dataText
        self.aDictionary = {}        

dataFile = open('data.txt', 'r')
c1 = Map(dataFile)

Мой файл data.txt выглядит примерно так:

hello, world

how, are

you, today

и я хочу, чтобы aDictionary распечатал этот вывод:

{how: are, you: today}

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

Почему в 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 может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
1 958
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Сначала вам нужно прочитать содержимое файла. Когда у вас есть содержимое файла, вы можете создать словарь следующим образом (при условии, что content содержит содержание из data.txt):

content = """hello, world

how, are

you, today"""

d = {}
for line in content.splitlines():
    if line:
        key, value = map(str.strip, line.split(','))
        d[key] = value

print(d)

Вывод

{'you': 'today', 'how': 'are', 'hello': 'world'}

Идея состоит в том, чтобы перебрать строки с помощью цикла for, затем проверить, не пуста ли строка (if line), в случае, если строка не пуста, разделить на запятую (line.split(',')) и удалить конечные пробелы (str.strip) для каждого значений в списке с помощью карта.

Или используя понимание словаря:

content = """hello, world

how, are

you, today"""

it = (map(str.strip, line.split(',')) for line in content.splitlines() if line)
d = {key: value for key, value in it}
print(d)

Чтобы прочитать содержимое файла, вы можете сделать следующее:

content = self.dataText.read()

Дальше

  1. Чтение всего файла в Python
  2. Как прочитать файл построчно в список?

Я получил ошибку AttributeError: объект '_io.TextIOWrapper' не имеет атрибута 'splitlines' при замене 'content' на 'self.dataText;

CosmicCat 29.11.2018 03:04

Хорошо, это сработало! не могли бы вы объяснить, как работает ваш первый метод? Я новичок в словарях и работе с файлами в Python. Большое спасибо!

CosmicCat 29.11.2018 03:06

@CosmicCat Обновил ответ!

Dani Mesejo 29.11.2018 03:10

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