Оформление словаря в txt файле и вычитывание значений из этого файла
Появилась идея сделать программу, которая могла бы случайным образом выбирать игру.
В целом что есть:
Файл с перечнем жанров игр в формате
RPG Action MMORPG и т.д. каждый новый жанр с новой строки
Есть перечень игр в формате
RPG = Dragon_Age, The_Elder_Scrolls_Skyrim Shooter = Bulletstorm, Splinter_Cell MMORPG = Lineage_2, Aion Action = Grand_Theft_Auto_V, Watch_Dogs Racing = Need_For_Speed_Payback, Blur и т.д. каждый новый жанр с новой строки
И есть вот такой код.
#-*- coding:cp1251 -*-
from random import randint
GenreList = []
FilteredGames = []
GameList = dict()
selected_genre = str()
selected_game = str()
def GenreSelection():
genre_file = open('genres.txt')
for line in genre_file.readlines():
GenreList.append(line.strip())
rand_range_genres = len(GenreList)
print(rand_range_genres)
selected_genre = GenreList[random.randint((rand_range_genres-rand_range_genres)-1,rand_range_genres)]
print(selected_genre)
genre_file.close()
def GameSelection():
#genre = "".join(selected_genre)
games_file = open("games.txt")
onstring = games_file.read().split("\n")
for item in onstring:
key = item.split(" ")[0]
value = item.split(" ")[1:]
GameList[key] = value
if item == selected_genre:
FilteredGames.append(key[value])
rand_drange_games = len(FilteredGames)
print(FilteredGames)
print(rand_range_games)
print(GameList)
#selected_game = GameList[random.randint((rand_range_games-rand_range_games)-1,rand_range_games)]
#print(selected_game)
games_file.close()
input('Для генерации жанра нажмите Enter')
GenreSelection()
input('Для генерации игры нажмите Enter')
GameSelection()
Собственно в чем вопрос:
Проблема в том, что данные из списка считываются, потому что print(GameList)
выводит в формате:
{'RPG': ['Dragon_Age,', 'The_Elder_Scrolls_Skyrim'], 'Shooter': ['Bulletstorm,', 'Splinter_Cell'], 'MMORPG': ['Lineage_2,', 'Aion'], 'Action': ['Grand_Theft_Auto_V,', 'Watch_Dogs'], 'Racing': ['Need_For_Speed_Payback,', 'Blur']}
(Баг с запятыми исправляется их убиранием и оставлением пробела)
Но эти списки в квадратных скобках он не добавляет через append в переменную FilteredGames.
Возможно, я как-то не так оформил сам словарь? Есть ли какие-то правила оформления словарей в текстовом файле? Или их надо оформлять так же как в самом питоне через фигурные скобки и двоеточия?
Из-за нулевой длины списка, последующие закомментированные строки тоже выдают ошибку