Python

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

Доброго времени суток.

d2 = {"id": 1948, "name": "Washer", "size": 3}
with open('file.txt','w') as out:
for key,val in d2.items():
out.write('{}:{}\n'.format(key,val))

d = {}
with open("file.txt") as file:
for line in file:
key, *value = line.split(':')
d[key] = value
print(d)

Вот этот код сохраняет словарь в текстовый файл, а потом достает от туда тот самый словарь.
Все вроде работает, только после извлечения словаря из текстового файла, к значениям в конце прибавляется символ \n. Я новичек в программировании на данном языке, подскажите будьте добры.
Здравствуйте! Символ \n добавляется потому, что при записи в файл вы используете форматирование строки, в котором добавляется этот символ в конце каждой строки. Для того чтобы избежать этой проблемы, можно использовать метод .strip() для удаления лишних пробелов и символов переноса строки из значений словаря при чтении из файла.

Также, обратите внимание на отступы в вашем коде. Они должны быть одинаковыми внутри блоков кода.

Вот исправленный код:


d2 = {"id": 1948, "name": "Washer", "size": 3}

with open('file.txt', 'w') as out:
for key, val in d2.items():
out.write('{}:{}\n'.format(key, val))

d = {}
with open("file.txt") as file:
for line in file:
key, *value = line.split(':')
d[key] = value[0].strip() # Удаление символов переноса строки и пробелов
print(d)
Роман Никитин
Роман Никитин
2 197
Лучший ответ
Андрей Леонтьев Спасибо большое, выручили очень
Андрей Леонтьев Chatgpt к сожалению недоступен в России.
Андрей Леонтьев Нет, я школьник самоучка
Андрей Леонтьев Учусь программировать для себя. На данный момент полноценно владею html языком веб программирования и css.
Теперь взялся за питон
Андрей Леонтьев Собираюсь поступать в универ на программиста, если буду знать языки программирования, в универе будет намного легче, тем более у меня уже будут готовые продукты которые я смогу использовать как для зароботка, так и для проектов.
 d2 = {"id": 1948, "name": "Washer", "size": 3} 
with open('file.txt','w') as out:
for key,val in d2.items():
out.write('{}:{}'.format(key,val))

d = {}
with open("file.txt") as file:
for line in file:
key, *value = line.split(':')
d[key] = value
print(d)
NH
Novruz Hesenov
25 127
Ответ ИИ (Chat GPT): "Конструкция split(':') возвращает список, содержащий ключ и значение словаря, разделенные символом ':'. При этом значение сохраняется в виде строки, которая может содержать символ переноса строки (\n) в конце. Чтобы избежать сохранения этого символа в словарь, необходимо удалить его из значения.

Вот исправленный код:

python
Copy code
d2 = {"id": 1948, "name": "Washer", "size": 3}

with open('file.txt', 'w') as out:
for key, val in d2.items():
out.write('{}:{}\n'.format(key, val))

d = {}
with open("file.txt") as file:
for line in file:
key, value = line.strip().split(':')
d[key] = value

print(d)
В строке key, value = line.strip().split(':') добавлен вызов метода strip(), который удаляет символы переноса строки и пробелы в начале и конце строки. Теперь переменная value не будет содержать символ \n."