Ich versuche, eine Bank zu machen, aber ich bin nicht in der Lage, die Integer-Daten der Datei zu ändern. Was meine Datei enthält, ist:Wie manipulieren Integer-Daten in CSV?
astle,hello,11
monish,mr7,0
Jetzt in meinem ‚Auswahl1‘ (später im Code zeigen), wenn ich versuche, 100 sagen annehmen zu deponieren, ist es nicht der Wert stattdessen ändern, um die gleiche value.Like gibt in In diesem Fall, wenn ich meinen Benutzernamen als 'astle' eingeben und versuchen, 100 einzahlen, wird der Wert 100 und nicht 111.Ich will 111, als wenn Sie es einzahlen, sollte alter Wert + newvalue sein.
Ich habe den folgenden Code versucht, aber ohne Erfolg.
Dies ist mein Code:
import csv
run=True
while run==True:
print "1) Deposit money"
choice=input("Enter your choice over here: ")
#This part takes the input from the user and then stores it in 'store.txt'
if choice==1:
b=raw_input("Enter the username: ")
with open('store.txt','r') as f:
reader = list(csv.reader(f))
for row in reader:
if b==row[0]: #Check the username with the file
c=input("Enter your new ammount")
print row[2],"Old value"
a=int(row[2])
print a
row[2] = c
print row[2],"New value"
flag = 1
break
else:
flag=0
if flag==0:
print "Username does not exist."
#Writes the new value in the file
with open('store.txt','w') as f:
wr = csv.writer(f)
for row in reader:
wr.writerow(row)
ich versucht habe Reihe zu ersetzen [2] = c mit der Zeile [2] + = c, aber es gibt mir die folgenden Fehler gibt:
row[2]+=d
TypeError: cannot concatenate 'str' and 'int' objects
Ersetzen Sie einfach 'row [2] = c' mit' row [2] + = c'. Aber außer für akademische Zwecke, ist eine CSV-Datei ** nicht ** das richtige Werkzeug hier ;-) –
Ich sehe keinen 'alten Wert + newvalue' Operation in Ihrem Code – baf
@SergeBallesta Ich habe das schon ausprobiert, aber es gibt mir dieser Fehler. TypeError: kann 'str' und 'int' Objekte nicht verketten. –