जब पायथन स्क्रिप्ट से टेक्स्ट फाइल ( python script.py > log
) में स्टडआउट लिखने की कोशिश की जाती है , तो कमांड शुरू होने पर टेक्स्ट फाइल बनाई जाती है, लेकिन पायथन स्क्रिप्ट के खत्म होने तक वास्तविक कंटेंट नहीं लिखा जाता है। उदाहरण के लिए:
script.py:
import time
for i in range(10):
print('bla')
time.sleep(5)
जब कॉल किया जाता है तो हर 5 सेकंड में प्रिंट करने के लिए प्रिंट करता है python script.py
, लेकिन जब मैं कॉल करता हूं python script.py > log
, तो स्क्रिप्ट खत्म होने तक लॉग फ़ाइल का आकार शून्य रहता है। क्या लॉग फ़ाइल में सीधे लिखना संभव है, जैसे कि आप स्क्रिप्ट की प्रगति का अनुसरण कर सकते हैं (उदाहरण के लिए tail
)?
संपादित करें यह पता चला है कि python -u script.py
चाल है, मैं stdout के बफरिंग के बारे में पता नहीं था।