दिलचस्प पोस्ट
यूटीएफ -8 को बीओएम से यूटीएफ -8 में परिवर्तित करें, जिसमें पायमॉन में कोई बीओएम नहीं है आईटीएमएस-90535, नवीनतम Google साइनइन एसडीके के साथ आईओएस एप को प्रकाशित करने में असमर्थ एएसएएस और एसडीओ के माध्यम से एमएक्स के साथ फाइल खोलें मोडल सेग्यू, नेविगेशन बार गायब हो जाता है पायथन में यूनिकोड स्ट्रिंग में एक्सएमएल / एचटीएमएल इकाइयां कन्वर्ट करें अहस्ताक्षरित सही पारी का व्यवहार बाइट चर पर लागू होता है अंग्रेजी में अपवाद संदेश? कैसे करें: अजगर टंकिनर का उपयोग करके बच्चों की खिड़कियां बनाएं मान्य इंटरनेट कनेक्शन का पता लगाने के लिए पहुंच क्षमता वर्ग का उपयोग कैसे करें? पायथन 3 टाइमेड इनपुट खाली जावास्क्रिप्ट सरणी के विवादित बूलियन मान जेएसएफ को बलपूर्वक मॉडल पढ़ने के लिए, मान्य और अपडेट करें पुश अधिसूचना का एफसीएम अनुसूची वितरण तिथि या समय कैसे git grafts और बदल अलग? (क्या अब ग्राफ्ट्स पदावनत है?) क्या अमेज़ॅन एपीआई गेटवे द्वारा लौटाए गए http स्थिति कोड को बदलने का एक तरीका है?

बच्चे के झुंड से सब-प्रोसेस में कंसोल में पायथन आउटपुट

मेरी पैरेंट स्क्रिप्ट में, मैं निम्नलिखित करता हूं:

fout=open(outfile,"w") ferr = open(errfile,"w") subprocess.call("1.py",stdout=fout,stderr=ferr,shell=True) 

1.py , स्क्रिप्ट में, मैं लॉग संदेश में जाने के लिए अधिकांश लॉग संदेश चाहता हूं, लेकिन कुछ संदेश, मैं कंसोल पर मुद्रित करना चाहता हूं, प्रिंट शर्तों के आधार पर:

 print "Hello World" 

लेकिन यह आउटफ़ाइल के लिए छपाई कर रहा है, जिसे मैं कंसोल पर प्रिंट करना चाहता था, मैंने कोशिश की थी

 sys.__stdout__.write("Hello World"); 

लेकिन वह भी काम नहीं कर रहा है किसी भी सहायता की सराहना की जाएगी!

Solutions Collecting From Web of "बच्चे के झुंड से सब-प्रोसेस में कंसोल में पायथन आउटपुट"

अगर stdout, stderr रीडायरेक्ट किया जाता है, तो आप सीधे कंसोल पर प्रिंट करने का प्रयास कर सकते हैं:

 try: # Windows from msvcrt import putwch def print_to_console(message): for c in message: putwch(c) # newline putwch('\r') putwch('\n') except ImportError: # Unix import os fd = os.open('/dev/tty', os.O_WRONLY | os.O_NOCTTY) tty = os.fdopen(fd, 'w', 1) del fd def print_to_console(message, *, _file=tty): print(message, file=_file) del tty 

उदाहरण:

 print_to_console("Hello TTY!") # -> Hello TTY! 

यदि आप 1.py , तो आप अपने खुद के उदाहरणों में stdout और stderr हो सकते हैं, आप वैकल्पिक रूप से, 1.py में stdout / stdin को अनुप्रेषित नहीं कर 1.py , और इसके बजाय पैरामीटर के रूप में fout/ferr कुछ इस तरह:

 # assuming python 2.7.x from __future__ import print_function import argparse import sys if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('--stdout' , nargs='?' , type=argparse.FileType('a') , default=sys.stdout) parser.add_argument( '--stderr' , nargs='?' , type=argparse.FileType('a') , default=sys.stderr) namespace = parser.parse_args() print("Hello There", file=namespace.stdout) print("Error time", file=namespace.stderr) print("Always to stdout") print("Always to stderr", file=sys.stderr) 

और फिर इसे इस तरह चलाएं:

 python 1.py --stdout=outfile.log stderr=errfile.log 

subprocess से कॉल करने के लिए:

 subprocess.call("1.py",shell=True) # no need to redirect stdout and stderr now