Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Basit bir Python sorusu


MrLevie

Öne çıkan mesajlar

Ya dünden beridir takıldım. Basit bir konu olduğuna eminim ama bir bilen biri lazım en azından ben çözemedim. 
 

300 satırlık bir kodum var. Satırların içine dağılmış print fonksiyonları var. Bazıları içerisinde değişken bilgisi falan içeriyor.

istedigim şey su, bu print fonksiyonlarının kodun sonunda toplu bir şekilde bana pusn notification olarak gelmesi. Notification kısmı kolay ama bu türetilen print bilgisini tek bir tabloda/arrayde bundle edip göndermek istiyorum.

append ederek denedim, arrayler boş dondu.

flush() dan bahsedilmiş, ise yaramadı zaten ama ne olduğunu da çok anlamadım zaten .

5 yaşında çocuğa anlatır gibi anlatırsanız sevirim.

 

Link to comment
Sosyal ağlarda paylaş

print(a)

print(b)

 

varsa kodun icinde

 

push_msg = ""

push_msg += str(a)

push_msg += str(b)

 

send_notification(push_msg)

bu kadar?

array istiyorsan da 

push_msgs = []

push_msgs.append(str(a))

push_msgs.append(str(b))

 

for push_msg in push_msgs:

  send_notification(push_msg)

 

cok karisik bisekilde kodu hic ellemeden print'i override ederek veya monkey patch ederek falanda yaparsin ama en amele yontemi bu.

Link to comment
Sosyal ağlarda paylaş

biraz daha destim, asagidkai kullanim derman oldu.

 

import sys
import io
import logging

# Redirect standard output to a variable
original_stdout = sys.stdout
output_collector = io.StringIO()

class TeeStream:
    def __init__(self, streams):
        self.streams = streams

    def write(self, data):
        for stream in self.streams:
            stream.write(data)

# Set up custom logging with a simple format
logging.basicConfig(
    stream=TeeStream([sys.stdout, output_collector]),
    level=logging.INFO,
    format="%(message)s"  # Display only the message without logger name or level
)
logger = logging.getLogger()

# Your code with scattered print functions
logger.info("Print 1")
# ... other code ...
logger.info("Print 2")
# ... more code ...
logger.info("Print 3")

# Restore stdout and print the summary
sys.stdout = original_stdout
output_collector.seek(0)  # Move the buffer cursor to the beginning
print("Summary:")
print(output_collector.read())

 

Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...