इसलिए मुझे 4 पूर्णांक का एक सेट रिकॉर्ड करने की आवश्यकता है जिनके मूल्य दिन के हर दूसरे के लिए अलग हैं। यानी .:एक बड़ी टेक्स्ट फ़ाइल में एक पंक्ति को संपादित करना
#Here the values are initialized to the same value, however they will change as samples are taken
data = [[.25 for numData in range(4)] for numSecs in range(86400)]
अब स्पष्ट रूप से एक दो आयामी सरणी (अपने अजगर, सूची गाह) जिनकी पहली सूचकांक लंबाई है 86400 काफी अव्यावहारिक है। इसके बजाय मैं एक पाठ फ़ाइल बनाना चाहते हैं 86400 लाइनों जैसे स्वरूपित:
numSec data0 data1 data2 data3
0 .25 .25 .25 .25
1 .25 .25 .25 .25
2 .25 .25 .25 .25
...
और के रूप में नमूने ले जाया जाता है, मैं इस फ़ाइल को संपादित करने में सक्षम होना चाहते हैं, अस्वीकार, मैं की लाइन संपादित करने में सक्षम होना चाहता हूँ फ़ाइल जिसका numSec = दूसरा नमूना लिया गया था। उदाहरण के लिए, एक नमूना numSec में लिया = 2 (आधी रात के बाद 2 सेकंड) मेरा कार्यक्रम कि इतने फ़ाइल को संपादित करने का कारण होता है:
0 .25 .25 .25 .25
1 .25 .25 .25 .25
2 .70 .10 .10 .10
...
काफी आसान लगता है, मेरे पास भी पदों जो प्रदर्शन किया के एक झुंड कैसे पढ़ एक पाठ फ़ाइल में एक एकल को फिर से लिखें। समस्या यह है कि, सभी को आवश्यकता है कि आप पूरी फाइल में पढ़ लें। मैं नहीं चाहता कि मेरा कार्यक्रम प्रति सेकंड 86,400 लाइनें पढ़े।
इस प्रकार हम अपने प्रश्न पर पहुंचते हैं: क्या मैं एक पाठ फ़ाइल में एक पंक्ति पढ़ सकता हूं, इसे संपादित कर सकता हूं, और फाइल को वापस लिख सकता हूं, बिना किसी बदलाव की पूरी फाइल को हर बार पढ़ने के बिना?
पीएस मुझे ध्यान रखना चाहिए कि मैं उबंटू 12.04 (सटीक) चला रहा हूं और यह आरओएस नोड
पीपीएस में उपयोग के लिए है, यह प्रोग्राम मनमाने ढंग से दिनों के लिए चल रहा है, इसलिए डेटा के प्रत्येक "दूसरे" को कई बार पढ़ा और फिर से लिखा जा सकता है । एक और कारण यह है कि मैं एक फ़ाइल का उपयोग करना चाहता हूं अगर सिस्टम को बंद करने की आवश्यकता है, तो मैं अगली बार चलाने के लिए वितरण को सहेजना चाहता हूं।
यदि फ़ाइल में प्रत्येक प्रविष्टि की लंबाई तय हो गई है, तो शायद 'mmap'। अन्यथा, डेटाबेस पर विचार करें। – Jokester
यदि प्रत्येक प्रविष्टि की निश्चित लंबाई होती है, तो आप बस बाइनरी मोड में फ़ाइल खोल सकते हैं, ऑफसेट की गणना कर सकते हैं, 'तलाश' और 'लिखित' जगह पर।(यह वास्तव में पाठ मोड में भी काम करेगा, जब तक आप न्यूलाइन और चार चौड़ाई को ध्यान में रखते हैं, लेकिन यह तकनीकी रूप से अवैध है।) हालांकि, 'mmap' शायद सरल हो रहा है, इसलिए जोकर को +1 करें। – abarnert
आपको क्या लगता है कि 5 संख्याओं के 86400 सेट स्टोर करना एक समस्या है? किसी भी घटना में, आपको प्रति सेकंड औसतन फ़ाइल का आधा लिखना होगा। साथ ही, पिछली पंक्ति के तुरंत बाद प्रत्येक सेकेंड लाइन से निपटने वाला होगा - क्यों सब कुछ याद में रखें? – Neil