tixonochek
@tixonochek
Мамкин Программист

Почему не записываеться в файл?

Вот код:
import time, random, asyncio, getpass

class game:
    money = 0

    def checkmoney(self):
        with open('C:/Users/Tix/Desktop/aiogram/data.txt', 'r') as pd:
            moneyFromFile = pd.readline()

            if moneyFromFile.startswith('money:'):
                gettedMoneyFromFile = moneyFromFile.split(':')
                game.money = int(gettedMoneyFromFile[1])
            else:
                exit()

    def pressEnter(self):
        pressEnterData = input('Нажмите ENTER чтобы продолжить...')

    def start(self):
        print('''
Приветствуем в SPIDY!
Spidy - Оффлайн РПГ игра в консоли с сохранением данных!
Начните веселиться прямо сейчас!
        ''')
        game.pressEnter(game())

    def reallystart(self):
        try:
            with open('C:/Users/Tix/Desktop/aiogram/data.txt', 'r') as pd:
                game.checkmoney(game())
        except:
            with open('C:/Users/Tix/Desktop/aiogram/data.txt', 'w') as pd:
                pd.write(f'money:{game.money}')

    def superstart(self):
        specmessage = f"""
Вы: {getpass.getuser()}
Ваш баланс: {game.money}
        """
        specmessage2 = f"""
Список команд:
• m - Проверить деньги
• u - Заработать денег: 1
• s - Сделать сохранение
Введите какую-то из команд чтобы продолжить:
        """
        game.checkmoney(game())
        print(specmessage)
        def idle():
            cmd = input(specmessage2)
            if cmd == 'm':
                print(f'Ваш баланс: {game.money}')
                idle()
            elif cmd == 'u':
                game.money += 1
                idle()
            elif cmd == 's':
                pd = open('data.txt', 'w')
                pd.write(f'money:{game.money}')
                print('Сохранено!')
                idle()
                pd.close()

        idle()

# On Game Start
game.start(game())
game.reallystart(game())
game.superstart(game())

Как я понял ошибка в команде 's', почему то оно не записывает в файл money:{game.money}. Я пробовал и with и без него. Без разницы. В начале игры записуеться, тут нет, че за бред. Я опять тупой 200%
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
@bbkmzzzz
что в path?
elif cmd == 's':
                path = os.path.abspath('data.txt')
                print(f'save file, path={path}')
                pd = open(path, 'w')
                pd.write(f'money:{game.money}')
                print('Сохранено!')
                idle()
                pd.close()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы