namestaj = open("komad_namestaja.txt", "r")
oldNamestaj = namestaj.read()
namestaj.close()
kategorija = open("kategorija_namestaja.txt", "r")
oldKategorija = kategorija.read()
kategorija.close()
sifra = input("\nUneti šifru entiteta >> ")
naziv = input("Uneti naziv entiteta >> ")
boja = input("Uneti boju entiteta >> ")
kolicina = input("Uneti količinu entiteta u magacinu >> ")
cena = input("Uneti cenu entiteta >> ")
kategorija = input("Uneti kategoriju entiteta >> ")
opis = input("Uneti opis entiteta >> ")
namestaj = open("komad_namestaja.txt", "w")
namestaj.write(oldNamestaj)
dataNamestaj = "\n" + sifra + "|" + naziv + "|" + boja + "|" + kolicina + "|" + cena + "|" + kategorija
namestaj.write(dataNamestaj)
namestaj.close()
kategorija_fajl = open("kategorija_namestaja.txt", "w")
kategorija_fajl.write(oldKategorija)
dataKategorija = "\n" + kategorija + "|" + opis
kategorija_fajl.write(dataKategorija)
kategorija_fajl.close()
我需要在文件中写入新行,并且必须包含唯一参数。 sifra和kategorija是唯一的参数,所以如果存在一些带有该名称程序的参数会弹出警告(sifra是INT,kategorija是STR)。 还有什么是改善当前代码的最佳方法?
答案 0 :(得分:0)
您需要解析文件以了解其内容并防止重复字段,因此可以重写此代码,
namestaj = open("komad_namestaja.txt", "r")
oldNamestaj = namestaj.read()
namestaj.close()
To,
sifra_in_file = set()
kategorija_in_file = set()
with open("komad_namestaja.txt", "r") as namestaj:
for line in namestaj:
line = line.trim() # Remove trailing '\n'
sifra, naziv, boja, kolicina, cena, kategorija = line.split('|') # Assume no field has '|'
sifra_in_file.add(sifra)
kategorija_in_file.add(kategorija)
稍后,您可以检查从文件中读取的数据中是否有sifra
或kategorija
:
if kategorija in kategorija_in_file:
# Print a warning