Как мне сделать чтобы файл запоминал или заменял username в json file на Python?
Мне надо чтобы когда игрок водил новый никнейм то он заменялся на тот которые вёл пользователь, но при этом чтобы он запоминал поле которые пользователь вёл, дальше будут коды для удобств:
File python:
from colorama import init, Fore #/
from colorama import Back #|
from colorama import Style #|
import msvcrt #|
import subprocess #|
import sys #|
import os #|
import time #|
import getpass #|
import json #|
#-----------Библы-----------------
os.system("title 〡ELauncher • Ядро: SCore")
# Открываем JSON
with open('C:/ELauncher/settings.json', 'r', encoding='utf-8') as file:
data = json.load(file)
# Забираем имя из словаря
username = data['username']
print("")
print(Fore.WHITE + " ███████╗██╗░░░░░░█████╗░██╗░░░██╗███╗░░██╗░█████╗░██╗░░██╗███████╗██████╗░")
print(Fore.WHITE + " ██╔════╝██║░░░░░██╔══██╗██║░░░██║████╗░██║██╔══██╗██║░░██║██╔════╝██╔══██╗")
print(Fore.BLUE + " █████╗░░██║░░░░░███████║██║░░░██║██╔██╗██║██║░░╚═╝███████║█████╗░░██████╔╝")
print(Fore.BLUE + " ██╔══╝░░██║░░░░░██╔══██║██║░░░██║██║╚████║██║░░██╗██╔══██║██╔══╝░░██╔══██╗")
print(Fore.RED + " ███████╗███████╗██║░░██║╚██████╔╝██║░╚███║╚█████╔╝██║░░██║███████╗██║░░██║")
print(Fore.RED + " ╚══════╝╚══════╝╚═╝░░╚═╝░╚═════╝░╚═╝░░╚══╝░╚════╝░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝")
print(Style.RESET_ALL)
print(" \033[41m От создателей EscapeWorld〡Выбран сервер: SCreate \033[0m")
print()
print("Ник:", username)
print("")
print("• Выберите пункт:")
print(" 1: Старт игры")
print(" 2: Выбор версии")
print(" 3: Настройка лаунчера")
def get_char():
return msvcrt.getch().decode('utf-8')
option = ""
current_directory = 'C:/ELauncher'
my_path = os.path.join(current_directory, 'start.bat')
while True:
key = get_char()
if key == "1":
os.system('cls' if os.name == 'nt' else 'clear')
print("")
print(Fore.WHITE + " ███████╗██╗░░░░░░█████╗░██╗░░░██╗███╗░░██╗░█████╗░██╗░░██╗███████╗██████╗░")
print(Fore.WHITE + " ██╔════╝██║░░░░░██╔══██╗██║░░░██║████╗░██║██╔══██╗██║░░██║██╔════╝██╔══██╗")
print(Fore.BLUE + " █████╗░░██║░░░░░███████║██║░░░██║██╔██╗██║██║░░╚═╝███████║█████╗░░██████╔╝")
print(Fore.BLUE + " ██╔══╝░░██║░░░░░██╔══██║██║░░░██║██║╚████║██║░░██╗██╔══██║██╔══╝░░██╔══██╗")
print(Fore.RED + " ███████╗███████╗██║░░██║╚██████╔╝██║░╚███║╚█████╔╝██║░░██║███████╗██║░░██║")
print(Fore.RED + " ╚══════╝╚══════╝╚═╝░░╚═╝░╚═════╝░╚═╝░░╚══╝░╚════╝░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝")
print(Style.RESET_ALL)
print(" \033[41m От создателей EscapeWorld〡Выбран сервер: SCreate \033[0m")
print("Нажмите на enter если вы уже водили ник.")
print("Введите ник:")
username = input("• ")
os.system('cls' if os.name == 'nt' else 'clear')
print("")
print(Fore.WHITE + " ███████╗██╗░░░░░░█████╗░██╗░░░██╗███╗░░██╗░█████╗░██╗░░██╗███████╗██████╗░")
print(Fore.WHITE + " ██╔════╝██║░░░░░██╔══██╗██║░░░██║████╗░██║██╔══██╗██║░░██║██╔════╝██╔══██╗")
print(Fore.BLUE + " █████╗░░██║░░░░░███████║██║░░░██║██╔██╗██║██║░░╚═╝███████║█████╗░░██████╔╝")
print(Fore.BLUE + " ██╔══╝░░██║░░░░░██╔══██║██║░░░██║██║╚████║██║░░██╗██╔══██║██╔══╝░░██╔══██╗")
print(Fore.RED + " ███████╗███████╗██║░░██║╚██████╔╝██║░╚███║╚█████╔╝██║░░██║███████╗██║░░██║")
print(Fore.RED + " ╚══════╝╚══════╝╚═╝░░╚═╝░╚═════╝░╚═╝░░╚══╝░╚════╝░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝")
print(Style.RESET_ALL)
print(" \033[41m От создателей EscapeWorld〡Выбран сервер: SCreate \033[0m")
print("Ник:", username, "выполняется вход...")
time.sleep(2.5)
#print(Fore.RED + " |-> Ошибка! Поставлен игровой-ник: MissingName")
time.sleep(4.5)
#print("Проверяю...") # - dev.click.openweb
os.system('cls' if os.name == 'nt' else 'clear')
print("")
print(Fore.WHITE + " ███████╗██╗░░░░░░█████╗░██╗░░░██╗███╗░░██╗░█████╗░██╗░░██╗███████╗██████╗░")
print(Fore.WHITE + " ██╔════╝██║░░░░░██╔══██╗██║░░░██║████╗░██║██╔══██╗██║░░██║██╔════╝██╔══██╗")
print(Fore.BLUE + " █████╗░░██║░░░░░███████║██║░░░██║██╔██╗██║██║░░╚═╝███████║█████╗░░██████╔╝")
print(Fore.BLUE + " ██╔══╝░░██║░░░░░██╔══██║██║░░░██║██║╚████║██║░░██╗██╔══██║██╔══╝░░██╔══██╗")
print(Fore.RED + " ███████╗███████╗██║░░██║╚██████╔╝██║░╚███║╚█████╔╝██║░░██║███████╗██║░░██║")
print(Fore.RED + " ╚══════╝╚══════╝╚═╝░░╚═╝░╚═════╝░╚═╝░░╚══╝░╚════╝░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝")
print(Style.RESET_ALL)
print(" \033[41m От создателей EscapeWorld〡Выбран сервер: SCreate \033[0m")
print("Проверяем обновление...")
time.sleep(2.5)
print("Проверяем файлы...")
time.sleep(2.5)
subprocess.run([my_path, username])
time.sleep(2.5)
break
#time.sleep(2.5)
elif key == "2":
option = "Выбор версии"
#os.system('cls' if os.name == 'nt' else 'clear')
print("")
print(Fore.RED + "ッ Пункт «Выбор версии» в разработке.")
print("")
#os.system('cls' if os.name == 'nt' else 'clear')
#time.sleep(1.5)
elif key == "3":
option = "Настройка лаунчера"
print("")
print(Fore.RED + "ッ Пункт «Настройка лаунчера» в разработке.")
print("")
elif key == "q":
break
print(option) # no response
JSON file:
{ "username": "ЧТОБЫ ЗАМЕНЯЛОСЬ И СОХРАНЯЛОСЬ!"}
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Для удобства предлагаю чтение или запись ника сгруппировать под одним условием:
print("Нажмите на enter если вы уже водили ник.")
print("Введите ник:")
username = input("• ")
data = {}
if username =="":
# Открываем JSON
with open('C:/ELauncher/settings.json', 'r', encoding='utf-8') as file:
data = json.load(file)
# Забираем имя из словаря
username = data['username']
else:
# Обновляем значение в json
data['username'] = username
# Записываем обновленные данные в файл
with open('C:/ELauncher/settings.json', 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)
Если пустая строка(Enter), открываем json файл и читаем ник из файла.
Если вводим никнейм, то записываем новые данные в json файл, а ник используем из строки ввода.