मैं प्रोग्रामिंग के लिए बहुत नया हूं इसलिए यदि मेरा प्रश्न बहुत मूर्खतापूर्ण है तो मैं पहले से क्षमा चाहता हूं।Python2.6 की तुलना में यह कोड Python3.1 में अलग-अलग व्यवहार क्यों करता है?
#!/usr/bin/python2.6
import subprocess, time
p=subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
for i in 'abcd':
p.stdin.write(str.encode(i+'\n'))
output=p.stdout.readline()
print(output)
time.sleep(1)
अजगर 2.6 प्रिंट पत्र ए, बी, सी, डी में इस कोड को निष्पादित, उत्पादन की प्रत्येक पंक्ति एक दूसरे के बाद दिखाई देता है। यह व्यवहार की उम्मीद है। लेकिन पायथन 3.1 में निष्पादन output=p.stdout.readline()
पर अवरुद्ध है। पायथन 3.1 के लिए इसे कैसे ठीक करें?
वास्तव में क्या होता है जब निष्पादन अवरुद्ध है? क्या आपको कोई त्रुटि दिखाई दे सकती है? – Ben
त्रुटियों में नहीं, केवल इनपुट के लिए संकेत देता है; इस कोड को एक अनुमान यह बफरिंग में मतभेद हो सकता है पर टर्मिनल विंडो –
में मार डाला गया था; यदि आप लिखने के बाद p.stdin.flush पर कॉल जोड़ते हैं तो कुछ बदलता है? –