Я новичок в python и пытаюсь написать программу, которая отслеживает количество денег, цифр или что-то еще. Вы можете добавить или вычесть сумму и сохранить ее в файл или проверить сумму, которую вы в настоящее время имеете. Я имел это работает, используя этот кодPython Pickle File Permissions
import pickle
num = 0
toDo = input("would you like to load or add/subtract? ")
if toDo == "add":
a = float(input("How much do you want to add? "))
pickle_in = open("Python", "rb")
newNum = pickle.load(pickle_in)
newNum = newNum + a
print("Current balance:", newNum)
pickle_out = open("Python","wb")
pickle.dump(newNum, pickle_out)
pickle_out.close()
if toDo == "subtract":
a = float(input("How much do you want to subtract? "))
pickle_in = open("Python", "rb")
newNum = pickle.load(pickle_in)
newNum = newNum - a
print("Current balance:", newNum)
pickle_out = open("Python","wb")
pickle.dump(newNum, pickle_out)
pickle_out.close()
if toDo == "load":
pickle_in = open("Python", "rb")
newNum = pickle.load(pickle_in)
print("Current balance:", newNum)
Это работает нормально, файл был загружается должным образом, все было хорошо, до сегодняшнего дня (около 24 часов), когда я попытался запустить эту программу снова, попытке загрузить текущее количество, и он дал мне эту ошибку:
Traceback (most recent call last):
File "C:\Users\Dom\Desktop\amount.py", line 34, in <module>
pickle_in = open("Python", "rb")
PermissionError: [Errno 13] Permission denied: 'Python'
затем я попытался с помощью функции os.chmod, но я не 100% уверен, что я использовал его должным образом.
import pickle
import os, sys, stat
num = 0
toDo = input("would you like to load or add/subtract? ")
if toDo == "add":
a = float(input("How much do you want to add? "))
pickle_in = os.chmod("Python", "rb")
newNum = pickle.load(pickle_in)
newNum = newNum + a
print("Current balance:", newNum)
pickle_out = open("Python","wb")
pickle.dump(newNum, pickle_out)
pickle_out.close()
if toDo == "subtract":
a = float(input("How much do you want to subtract? "))
pickle_in = os.chmod("Python", "rb")
newNum = pickle.load(pickle_in)
newNum = newNum - a
print("Current balance:", newNum)
pickle_out = open("Python","wb")
pickle.dump(newNum, pickle_out)
pickle_out.close()
if toDo == "load":
pickle_in = os.chmod("Python", "rb")
newNum = pickle.load(pickle_in)
print("Current balance:", newNum)
казалось, я получил за проблемой разрешения с помощью CHMOD, но потом я получил эту ошибку при попытке загрузить, добавить или вычесть.
Traceback (most recent call last):
File "C:\Users\Dom\Desktop\amount.py", line 11, in <module>
pickle_in = os.chmod("Python", "rb")
TypeError: an integer is required (got type str)
Не уверен, что я не использую функцию chmod правильно или что. Может ли кто-нибудь сказать мне, как исправить это и/или почему он перестает работать?