Adam Ebrahim نشر 6 يونيو 2021 أرسل تقرير نشر 6 يونيو 2021 لدي مشكلة متعلقة بـ sys.stdout وأريد أن أقوم بإيقاف الـ output buffering مؤقتًا، هل توجد طريقة لفعل ذلك بدون استعمال العلم -u في سطر الأوامر؟ أي القيام بهذا الأمر عن طريق كود بايثون. اقتباس
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 اقتباس
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 اقتباس
السؤال
Adam Ebrahim
لدي مشكلة متعلقة بـ sys.stdout وأريد أن أقوم بإيقاف الـ output buffering مؤقتًا، هل توجد طريقة لفعل ذلك بدون استعمال العلم -u في سطر الأوامر؟ أي القيام بهذا الأمر عن طريق كود بايثون.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.