Bir barkod okuma sistemi yaptım ve bu sistem, okunan barkodları TXT dosyasına yazdırıyor. Ben, daha önce yazılan barkodu bir daha yazmamasını istiyorum.
Mesela daha önce 000000 diye bir barkod kaydettiysem ve kameraya tekrardan 000000 barkodu okutursam yazmayacak. Olay bu.
Bu kodla denedim fakat bu seferde hiçbir şey yazmıyor dosyaya:
okumad = open("barkodlar.txt", "r")
for x in okumad:
if barcode_info == x:
print("Bu barkod zaten kayıtlı")
break
else:
dosya.write(barcode_info +"\n")
dosya = open("barkodlar.txt", "r+")
barkodlar = dosya.readlines()
durum = True
for barkod in barkodlar:
if barcode_info == barkod[:-1]:
durum = False
if durum is True:
dosya.write(barcode_info + "\n")
else:
print("Bu barkod zaten kayıtlı.")
dosya.close()
Hem yazma hem de okuma işlemleri gerçekleştirmek için dosyayı “r” ile değil de “r+” ile açmalısınız.
Dosyadan çektiğiniz her bir satırın sonunda “\n” yer alacağı için, karşılaştırma yaparken buna dikkat etmelisiniz.
Dosya ile alakalı işlemler bittikten sonra dosyayı kapatmaya özen göstermelisiniz.
import getpass
file = "C:\\Users\\"+getpass.getuser()+"\\Desktop\\barkodlar.txt"
barkod_sorgu = input("Barkod Numarası Girin => ")
def barkod_sisteme_yaz(x,file):
with open(file,"a") as g:
g.write(x+"\n")
print(f"{x} sisteme yazıldı")
def barkod_sorgulama(file):
with open(file,"r") as f:
ff = f.readlines()
for i in ff:
if barkod_sorgu in i:
print(f"{barkod_sorgu} numaralı barkod sistemde yer alıyor")
break
if not barkod_sorgu in i:
print(f"{barkod_sorgu} numaralı barkod sistemde bulunmuyor.")
barkod_sisteme_yaz(barkod_sorgu,file)
barkod_sorgulama(file)
var olan barkodları sorgulattığımızda barkod sistemde yer alıyor, eğer sistemde yoksa barkod sistemde bulunmuyor. dedikten sonra üstteki fonksiyon çağırılıyor(gerekli parametrelerle)
@Gok_Mavisi_Anka çok temiz yazmışsınız hocam @Grata bence güzel bir simülasyon örneği olabilir bunlar