Wie kann ich Python dazu bringen, in meiner Datei „money.py“ zwischen verschiedenen Benutzern zu unterscheiden?

Wie kann ich Python dazu bringen, in meiner Datei „money.py“ zwischen verschiedenen Benutzern zu unterscheiden?

Hier ist mein Code: -

f= open("Passes.py", "a+")
m=open("money.py","a+")
passes= {}
init={}
initial=0
import time
wait=time.sleep(0.5)
print "Welcome to the virtual banking system"
wait
user=raw_input("Would you like to create a new account? 'Y/N'").lower()
if user== "y":
  new_user= raw_input("Create a username:")
  new_pass= raw_input("Create a password:")
  p= passes[new_user]= new_user + ":" + new_pass
  f.write("\n"+p)
  ask=raw_input("Would you like to sign into your account? 'Y/N'").lower()
  if ask=="y":
    user_in=raw_input("Enter your username:")
    if user_in==new_user:
      pass_in=raw_input("Enter your password:")
      if pass_in==new_pass:
        running=True
        while running:
          print "Welcome to your account" + " " + new_user
          useropt=raw_input("Would you like to view your balance- enter 1, deposit money- enter 2 or withdraw money- enter 3:")
          if useropt=="1":
            print "Your balance is:", initial
            m.write("\n"+str(initial))
          if useropt=="2":
            m.close()
            u=open("money.py","r+")
            amountdep= int(raw_input("How much money would you like to deposit?:"))
            initial+=amountdep
            print "Thanks. Your new balance is:", initial
            u.write(str(initial)+"\n")
          if useropt=="3":
            m.close()
            r=open("money.py","r+")
            amountwith=int(raw_input("How much would you like to withdraw?:"))
            initial-=amountwith
            if initial>=0:
              print "Your balance is:", initial
              r.write(str(initial)+"\n")
            else:
              print "Sorry, this amount cannot be withdrawn. Balance cannot be less than 0"
          cont = raw_input("Would you like to do another operation? 'Y/N'").lower()
          running = cont == "y"
      else:
        print "Password not valid"

    else:
      print "Username does not exist"

  else:
    print "Thanks for using the virtual bank."

else:
  user2=raw_input("Do you have an existing account? 'Y/N'").lower()
  if user2=="y":
    existing_user=raw_input("Enter your username:")
    exisitng_pass=raw_input("Enter your password:")
    for passwords in f:
      if passwords==existing_user+":"+exisitng_pass:
        run=True
        while run:
          print "Welcome to your account" + " " + existing_user
          with open("money.py", "r") as m:
            info= int(m.readline().strip())
            useropt2=raw_input("Would you like to view your balance- enter 1, deposit money- enter 2 or withdraw money- enter 3:")
            if useropt2=="1":
              print "Your balance is:", info
            if useropt2=="2":
              amountdep= int(raw_input("How much money would you like to deposit?:"))
              a=info+int(amountdep)
              print "Your new balance is:", a
              with open("money.py", "w") as m:
                  m.write(str(a))
            if useropt2=="3":
              amountwith=int(raw_input("How much would you like to withdraw?:"))
              t=info-int(amountwith)
              if t>=0:
                print "Your balance is:", t
                with open("money.py", "w") as m:
                  m.write(str(t))
              else:
                print "Sorry, this amount cannot be withdrawn. Balance cannot be less than 0"
            restart = raw_input("Would you like to do another operation? 'Y/N'").lower()
            run = restart == "y"
      else:
        print "Invalid username or password"
  else:
    print "Thanks for using the virtual bank."

Ich habe zwei Dateien, und eine davon ist „money.py“. In dieser Datei ist der Gesamtbetrag auf dem Konto meines Benutzers gespeichert. Das Problem ist jedoch, dass es derzeit keine Möglichkeit gibt, in meinem Programm zwischen zwei Benutzern und ihrem Geld zu unterscheiden, da es nur den ganzzahligen Wert ihres Gesamtbetrags speichert. Ich habe auch versucht, den Benutzernamen und dann den Geldbetrag zu schreiben, habe aber festgestellt, dass dies nicht funktioniert, da es Zeichenfolgen und Ganzzahlen vermischt. Gibt es eine Möglichkeit, zwischen verschiedenen Benutzern zu unterscheiden? Danke.

Antwort1

Diese Frage hätte besser an Stackoverflow gestellt werden sollen.

Mein Vorschlag ist, Ihre Salden beispielsweise in einem Wörterbuch zu speichern balances[user] = amountund das jsonModul zum Lesen / Schreiben aus der Datei zu verwenden

Laden:

with open("money.py", "r") as moneyfile:
    balances = json.load(moneyfile)

speichern:

with open("money.py", "w") as moneyfile:
    json.dump(balances, moneyfile)

Hinweis: .pyWird die Erweiterung für Python-Quellcode verwendet, ist für die Datenspeicherung eine andere Erweiterung vorzuziehen, z. B. .txtoder.dat

verwandte Informationen