Dosya EXE İle Çalıştığında Program Çıktısının Dosyayı Okuma Modunda Ekrana Getirmesi

Merhaba
Aşağıdaki kodu içeren programda, dosyaya, dosya adı ile birlikte otomatik tarihinde birlikte yazılarak kaydedilmes işlemini Sn @dildeolupbiten yardımlarıyla halletmiştim. Ve ek olarak bu dosyayı exe formatında çalışır hale getirdim fakat sonucu görebilmek için program kapanınca manuel olarak kaydın gerçekleştiği klasöre gidip ilgili dosyayı bulup üzerinde tıklayarak açmam gerekiyor. Bu işleme gerek kalmadan exe dosyasını çalıştırdığımda bana sonucu direk göstermesi için dosyanın okuma modunda açılarak bir nevi rapor çalıştırılması gibi ekrana gelmesi gerekiyor. Bunun sağlanması için kodu nasıl revize etmem gerekiyor. 4-5 deneme yaptım ama her denemede exe’yi tekrar oluşturmam gerektiğinden bayaği meşakkatli oldu ve sonunda pes ettim. Yardimlariniz için teşekkür ederim.

yol = os.sep.join(
    [
        "C:",
        "PythonDosyalar",
        dt.now().strftime("%d.%m.%Y") + " Yoklama_6_Fen_B.py"
    ]
)
with open(yol, 'w', encoding='utf-8') as f:
    f.write(dt.now().strftime("%d.%m.%Y\n"))
    f.write(f"Total Students : {len(students)}\t")
    f.write(f"Total In : {len(inDict)}\t")
    f.write(f"Total Out : {len(outDict)}\n")
    f.write('\nAbsent Students\n')
    f.write(50 * "-")
    f.write("\n")
    for x, y in outDict.items():
        f.write(f"{x} : {y}\n")
        f.flush()
print("-" * 25)
#    with open(yol, 'r', encoding='utf-8') as f:
#    print(f.read())

Kodun tamamı aşağıdadır.


import datetime
from datetime import datetime as dt
import os

print("-" * 25)
now = datetime.datetime.now()
students = {101: "Mehmet Ali Karabuç", 102: "Ahmet Edip", 103: "Arda Özel", 105: "Ayşe Beyza", 106: "Ayşe Nisa Şahin",
            107: "Cemre Varan", 109: "Durdane Sarı", 110: "Eda Yücel", 111: "Esra Körün", 112: "Fatma Zehra Karakaya",
            114: "Kutalmış Yılmaz", 115: "M.Buğra Şahin", 117: "Melda Cırık", 118: "Miray Yılmaz", 119: "Yusuf Loğoğlu",
            120: "Muhammet Emir Demirci", 121: "Yağmur Ceylin Kurtcu", 122: "Nehir Durgun", 123: "Ömer utku ipek",
            124: "Simay Tuluk", 126: "Tuğba Gündoğan", 127: "Tuna Ünüvar", 128: "Zeynep Büşra Akbaş", 113: "Kemal Uçar"
            }
inDict = {}
outDict = {}
dict_count = 0
while True:
    if dict_count == len(students):
        break
    for key, value in students.items():
        print(key, value)
        result = input("If student in class, ( press: v ), If not ( press y ) : ")
        result = result.lower()
        if result == 'v':
            inDict[key] = value
        elif result == 'y':
            outDict[key] = value
        else:
            print("Wrong Enter")
            while True:
                result = input("You have to press 'V', If student is in the class, If not  press 'Y'  : ")
                if result == 'v':
                    inDict[key] = value
                    break
                elif result == 'y':
                    outDict[key] = value
                    break
                else:
                    print("Mr.Idiot , If student is in the class, press: v. If not, press y : ")
                    continue

        dict_count += 1
print()
yol = os.sep.join(
    [
        "C:",
        "PythonDosyalar",
        "Yoklamalar",
        dt.now().strftime("%d.%m.%Y") + " Yoklama_6_Fen_B.py"
    ]
)
with open(yol, 'w', encoding='utf-8') as f:
    f.write(dt.now().strftime("%d.%m.%Y\n"))
    f.write(f"Total Students : {len(students)}\t")
    f.write(f"Total In : {len(inDict)}\t")
    f.write(f"Total Out : {len(outDict)}\n")
    f.write('\nAbsent Students\n')
    f.write(50 * "-")
    f.write("\n")
    for x, y in outDict.items():
        f.write(f"{x} : {y}\n")
        f.flush()
    f.write("-" * 50)
with open(yol, 'r', encoding='utf-8') as f:
    print(f.read())

Gorebilir miyiz?

Her denemede exe dosyasini yeniden olusturmana gerek yok. Python script dosyasini yazi halindeyken de calistirabilirsin. Illa bir .exe gerekiyorsa, python.exe veya pythonw.exe dosyalarina script’in tam yolunu parametre olarak vererek calistirabilirsin.

1 Beğeni

Python program dosyasinin üstinde sağ tuş tiklayip çikan menüdeki birlikte aç program seçimlerinden bahsediyorsunuz sanırım. Ben exe yapma prosedürü kafama iyice işlesin diye sürekli aynı şekilde exe - dosya değişikliğini yap boz şekline çevirdim ama değdi artık benden hızlı kimse dosyasını exe’ye çeviremez. :slight_smile: İlginiz için teşekkür ederim.

Tercüme edersen belki anlayabilirim.

Go projelerini derlemek,yani exe yapmak için
go build dosya.go yeterken Python uğraştırıyor.Yorumlanan bir dil ama yazayım dedim.

Golang’dan bahsediyorsanız, yorumlanan bir dil değil. Hedef mimarinin makine koduna derleniyor.

Pes ettigini ve (ama) buna degdigini anliyoruz.

Bunlari da goremedigimize gore pes etmenin sonucu “forumdakiler benim icin yapsinlar” midir?

Bu yazdigina “flamebait” diyoruz ve webden daha eski bir trolleme yontemi.

1 Beğeni

@aib Şu an Veri tabanı ile Python proje bağlantı konularını öğreniyorum. Dosya konularını bir müddet rafa kaldırdım bu yüzden. Forumdakilere yaptırma hakkımı daha sonra işime gerçekten yarayacak bir konuda kullanmak isterim eğer varsa, sadece meraktan sorulan bir soru için harcamak istemem.