मैं बहुत सारी प्रोसेसिंग, फॉर्मेट करने के लिए एक स्ट्रिंग बफर बनाना चाहता हूं और अंत sprintfमें पायथन में सी-स्टाइल की कार्यक्षमता का उपयोग करके टेक्स्ट फाइल में बफर को लिखता हूं । सशर्त बयानों के कारण, मैं उन्हें सीधे फाइल में नहीं लिख सकता।
जैसे छद्म कोड:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
इसलिए आउटपुट फ़ाइल में हमारे पास इस तरह का ओ / पी है:
A= foo B= bar
C= ded
etc...
संपादित करें, मेरे प्रश्न को स्पष्ट करने के लिए:
buf एक बड़ा बफर है जिसमें ये सभी तार हैं जो स्प्रिंट का उपयोग करके स्वरूपित हैं। अपने उदाहरणों के आधार पर, bufकेवल वर्तमान मूल्य शामिल होंगे, पुराने नहीं। जैसे bufमैंने पहले लिखा था A= something ,B= somethingबाद C= somethingमें उसी में जोड़ा गया था buf, लेकिन आपके पायथन के जवाबों bufमें केवल अंतिम मूल्य होता है, जो मैं नहीं चाहता - मैं शुरू से अब तक किए bufगए सभी printfएस करना चाहता हूं, जैसे कि C।
def sprintf(buf, fmt, *args): ...
buf, अंत में नहीं।) यह संभवत: स्ट्रिंग के एक सरणी का उपयोग करने के लिए सबसे अच्छा काम करेगा, फिर फ़ाइल में लिखने से पहले उन्हें एक साथ जोड़ दें।