Уведомления

Группа в Telegram: @pythonsu

#1 Июль 19, 2022 00:20:17

asdwer_123
Зарегистрирован: 2022-07-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Хочу как бы создать баланс сохранений в файле

 Start = 'yes'
if Start == "yes":
	asd = open("data_players.txt", "w+")
	dsa = asd.read()
	print(dsa)
	if dsa == "1":
		file = open('data_players.txt','r+')
		file.write("0")
		file.close
		print('save')
	elif dsa == 0:
		print('good')

Хочу чтобы если нету в файле баланса то создать и продолжить дальше
а если есть то добавить его в переменую и после когда кончится типо игра сохранило баланс в файл (той же)

сложно очень и не понятно

Офлайн

#2 Июль 19, 2022 09:56:22

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Хочу как бы создать баланс сохранений в файле

 import os
# Add fuction for work with user data
def save_user_data(file, value=None):
    """Func return saved user data or create new
    Parameters:
        file (str): file name
        value (int): new user value
    Returns:
        user value (int)
    """
    # add file path
    file_path = os.path.join(os.getcwd(), file)
    # Check if file is exist
    if os.path.exists(file_path):
        file_mode = "r+"
    else:
        file_mode = "w+"
    # work with file
    with open(file_path, file_mode) as user_data:
        # update user data
        if value:
            balance = str(value)
            user_data.writelines(balance)
        else:
            # read user data
            balance = user_data.readline()
            # if user data isn't added yet
            if balance == "":
                balance = "0"
                user_data.writelines(balance)
    return int(balance)
# Read users data at start app
user1 = save_user_data("user1.txt")
user2 = save_user_data("user2.txt")
print(f"User1: {user1} | User2: {user2}")
# Update users vars in main app cycle
for i in range(0, 2):
    user1 = user1 + 1
    user2 = user2 + 1
    # or you can saved user data every time without end save
    # save_user_data("user1.txt", user1)
    # save_user_data("user2.txt", user2)
print(f"User1_updated: {user1} | User2_updated: {user2}")
# End save
save_user_data("user1.txt", user1)
save_user_data("user2.txt", user2)
print(f"User1_saved: {user1} | User2_saved: {user2}")

User1: 8 | User2: 8
User1_updated: 10 | User2_updated: 10
User1_saved: 10 | User2_saved: 10



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Июль 19, 2022 11:16:56

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Хочу как бы создать баланс сохранений в файле

asdwer_123
Хочу чтобы если нету в файле баланса то создать и продолжить дальше
а если есть то добавить его в переменую и после когда кончится типо игра сохранило баланс в файл (той же)
мне кажется разумнее иметь два конфига - один дефолтный, с которым начинается игра и который поставляется вместе с кодом, а сохранения происходят в хоум каталоге пользователя



Офлайн

#4 Июль 19, 2022 13:26:38

asdwer_123
Зарегистрирован: 2022-07-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Хочу как бы создать баланс сохранений в файле

FishHook
Ну я пробую сохранить файл в C
а чтобы там сохранять нужно запустить от имени адм.
можно сохранить канешно в другой диск но у человека может быть взамен D например E и скрипт просто умрет

Офлайн

#5 Июль 19, 2022 13:42:03

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Хочу как бы создать баланс сохранений в файле

asdwer_123
то есть вы пишите на питоне игру виндовз-онли? А зачем такое ограничение? Питон кроссплатформенный язык, то есть ваша программа будет без проблем работать хоть на винде, хоть на никсах, хоть на маке, хоть на андроиде. Но вы искусственно ограничиваете применение жестко задавая пути характерные только для виндовз



Офлайн

#6 Июль 19, 2022 13:47:38

asdwer_123
Зарегистрирован: 2022-07-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Хочу как бы создать баланс сохранений в файле

FishHook
asdwer_123то есть вы пишите на питоне игру виндовз-онли? А зачем такое ограничение? Питон кроссплатформенный язык, то есть ваша программа будет без проблем работать хоть на винде, хоть на никсах, хоть на маке, хоть на андроиде. Но вы искусственно ограничиваете применение жестко задавая пути характерные только для виндовз
Ну а куда лучше сохранять файлы ? чтобы можно было использовать их как вы говорите
FishHook
хоть на винде, хоть на никсах, хоть на маке, хоть на андроиде.

Офлайн

#7 Июль 19, 2022 14:17:09

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Хочу как бы создать баланс сохранений в файле

asdwer_123
в домашний каталог пользователя, конечно. Ваши игры же не сохраняют сейвы в корень диска С, правильно? Каким-то образом, они определяют, где лежат данные текущего пользователя и пишут туда, а так как игры запускаются от имени того же пользователя, не возникает никаких проблем с правами доступа и не засераются системные каталоги. Только не спрашивайте “а как это сделать”, это гуглится за секунду, пусть будет вашим домашним заданием



Офлайн

#8 Июль 19, 2022 16:46:33

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Хочу как бы создать баланс сохранений в файле

asdwer_123
Ты издеваешься?
Я ж тебе рабочий код выложил
там файлы будут сохраняться рядом с запущеным приложением
ну а если хочешь в юзера лить поменяй строку
 file_path = os.path.join(os.getcwd(), file)
file_path = os.path.join(os.environ['APPDATA'], file)



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Отредактировано ZerG (Июль 19, 2022 16:47:07)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version