使用唯一参数在文件中写入新行

2024-06-25 23:02:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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)。 还有,改进当前代码的最佳方法是什么


Tags: txtcloseinput参数openwritenazivopis
1条回答
网友
1楼 · 发布于 2024-06-25 23:02:01

你需要解析文件以知道它的内容并防止重复的字段,这样代码就可以被重写

namestaj = open("komad_namestaja.txt", "r")
oldNamestaj = namestaj.read()
namestaj.close()

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)

稍后,您可以检查sifrakategorija是否在从以下文件读取的数据中:

if kategorija in kategorija_in_file:
    # Print a warning

相关问题 更多 >