प्रक्रिया निष्पादन के दौरान एक पाठ फ़ाइल में उबंटू पास की जानकारी


2

मेरा मुद्दा यह है कि मेरे पास एक फ़ंक्शन है इसे फ़ंक्शन 1 कहते हैं जो अनिश्चित काल तक चलता है। समारोह में प्रत्येक 1 सेकंड में "हैलो" गूंजता है। कमांड का उपयोग करना:

function1 >> temp.txt

हर 1 सेकंड अगर मैं फ़ाइल अस्थायी देखना चाहता हूँ। तो मुझे "हैलो" के साथ एक नई लाइन देखनी चाहिए। हालाँकि जो हो रहा है वह यह है कि फ़ंक्शन फ़ाइल को तब तक नहीं लिखता है जब तक कि उसका काम पूरा न हो जाए। इसलिए अगर मैं फ़ंक्शन को मार रहा हूं तो कुछ भी नहीं लिखा जाएगा। क्या किसी को इस स्थिति में मैं कुछ ऐसा कर सकता हूं जो मूल रूप से गतिशील रूप से अस्थायी अद्यतन करेगा।

मेरे पास एक पायथन स्क्रिप्ट है जो निम्नलिखित तरीके से सेट की गई है:

while [1>0]: print "hello" time.sleep(1)

इसलिए यह हमेशा चलता रहेगा। अब मैं इसे बैश स्क्रिप्ट में कहता हूं

python pythonscript.py >> temp.txt

अगर मैं killइस प्रक्रिया में कोई डेटा लॉग नहीं है।


मुझे आश्चर्य है कि यह उस तरह से काम करता है - लेकिन साथ आने के लिए सबसे आसान चीज आपके फ़ंक्शन को बदले जाने के लिए एक अलग शेल स्क्रिप्ट में बदल देगी। क्या यह स्वीकार्य समाधान होगा?
इज़्ज़ल

ऐसा करना बेहद मुश्किल होगा। एक सरल समाधान की तलाश में
मैट स्टोक्स

जवाबों:


2

अब जब आप इसका उल्लेख करते हैं, तो यह एक शेल फ़ंक्शन नहीं है, लेकिन एक अजगर स्क्रिप्ट में एक पायथन फ़ंक्शन है: जो कुछ समझाता है, और यहां आपका जवाब आता है:

मुद्रण - पायथन प्रिंट का आउटपुट फ्लश कैसे करें? - स्टैक ओवरफ़्लो

आपको अपने अजगर फ़ंक्शन के लूप के अंदर रखने की आवश्यकता है: sys.stdout.flush()- और निश्चित रूप से आपको import sysपहले (या from sys import ...यदि आपको केवल इसके एक भाग की आवश्यकता है) की आवश्यकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.