Adam Ebrahim نشر 6 يونيو 2021 أرسل تقرير مشاركة نشر 6 يونيو 2021 لدي مشكلة متعلقة بـ sys.stdout وأريد أن أقوم بإيقاف الـ output buffering مؤقتًا، هل توجد طريقة لفعل ذلك بدون استعمال العلم -u في سطر الأوامر؟ أي القيام بهذا الأمر عن طريق كود بايثون. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 سامح أشرف نشر 8 يونيو 2021 أرسل تقرير مشاركة نشر 8 يونيو 2021 يمكنك أن تستخدم المعامل flush في دالة print والذي تم إضافته بداية من الإصدار 3.3 كالتالي: print('Hello, World!', flush=True) كما يمكنك أن تقوم بإيقاف الـ output buffering لملف python معين من خلال إضافة التعليق التالي في بداية الملف: #!/usr/bin/env python -u ويختلف التعليق السابق حسب بيئة العمل لديك. كما يمكنك أن تستعمل الكائن stdout من مكتبة sys كالتالي: import io, sys sys.stdout = io.TextIOWrapper(open(sys.stdout.fileno(), 'wb', 0), write_through=True) كما يمكنك أن تستعمل مكتبة functools كالتالي: import functools print = functools.partial(print, flush=True) 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 عبدالباسط ابراهيم نشر 6 يونيو 2021 أرسل تقرير مشاركة نشر 6 يونيو 2021 توجد عدة طرق لإيقاف ال output buffering منها يمكنك استخدام flush للدالة print كمثال import time for buffer in range(20): print(buffer, end=" ", flush=True) time.sleep(2) أو يمكنك استخدام ()sys.stdout.flush وتوجد عدة طرق أخرى قم بالبحث عنها لإختيار الطريقة الأفضل لك 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Adam Ebrahim
لدي مشكلة متعلقة بـ sys.stdout وأريد أن أقوم بإيقاف الـ output buffering مؤقتًا، هل توجد طريقة لفعل ذلك بدون استعمال العلم -u في سطر الأوامر؟ أي القيام بهذا الأمر عن طريق كود بايثون.
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.