Unten ist ein Ausschnitt aus einer CSV-Datei. Die erste Spalte ist die Produktnummer, 2 der Lagerbestand ist, 3 ist der Zielpegel ist, und 4 ist der Abstand vom Ziel (Ziel minus Bestand.)Zeichenfolge ersetzen für mehrere Zeilen in einer CSV
34512340,0,95,95
12395675,3,95,92
56756777,70,95,25
90673412,2,95,93
Wenn der Lagerbestand bis 5 bekommt oder unter Ich möchte die Lagerbestände von Python aktualisiert haben, wenn ein Benutzer es anfordert.
Ich benutze derzeit diesen Code, den ich von nur einer Zeile in der CSV-Datei angepasst habe. Es funktioniert aber nicht. Die erste Zeile wird als 34512340,0,95,95
in die Datei geschrieben und der Rest der Datei wird gelöscht.
choice = input("\nTo update the stock levels of the above products, type 1. To cancel, enter anything else.")
if choice == '1':
with open('stockcontrol.csv',newline='') as f:
for line in f:
data = line.split(",")
productcode = int(data[0])
target = int(data[2])
stocklevel = int(data[1])
if stocklevel <= 5:
target = str(target)
import sys
import csv
data=[]
newval= target
newtlevel = "0"
f=open("stockcontrol.csv")
reader=csv.DictReader(f,fieldnames=['code','level', 'target', 'distancefromtarget'])
for line in reader:
line['level']= newval
line['distancefromtarget']= newtlevel
data.append('%s,%s,%s,%s'%(line['code'],line['level'],line['target'],line['distancefromtarget']))
f.close()
f=open("stockcontrol.csv","w")
f.write("\n".join(data))
f.close()
print("The stock levels were updated successfully")
else:
print("Goodbye")
Hier ist der Code, den ich eine Zeile in der CSV-Datei zu ändern hatte und arbeitet:
with open('stockcontrol.csv',newline='') as f:
for line in f:
if code in line:
data = line.split(",")
target = (data[2])
newlevel = stocklevel - quantity
updatetarget = int(target) - int(newlevel)
stocklevel = str(stocklevel)
newlevel = str(newlevel)
updatetarget = str(updatetarget)
import sys
import csv
data=[]
code = code
newval= newlevel
newtlevel = updatetarget
f=open("stockcontrol.csv")
reader=csv.DictReader(f,fieldnames=['code','level', 'target', 'distancefromtarget'])
for line in reader:
if line['code'] == code:
line['level']= newval
line['distancefromtarget']= newtlevel
data.append('%s,%s,%s,%s'%(line['code'],line['level'],line['target'],line['distancefromtarget']))
f.close()
f=open("stockcontrol.csv","w")
f.write("\n".join(data))
f.close()
Was kann ich den Code Arbeit machen ändern? Ich möchte grundsätzlich, dass das Programm jede Zeile der CSV-Datei durchläuft, und wenn der Lagerbestand (Spalte 2) gleich oder kleiner als 5 ist, den Lagerbestand auf die Zielnummer in Spalte 3 aktualisieren und dann die Anzahl einstellen Spalte 4 auf Null.
Danke,
@SilentMonk bitte können Sie diese Frage betrachten –
Entschuldigung, ja, es hat @SilentMonk –