2012-12-11 5 views
6

मैं एक छोटा सा प्रोग्राम लिख रहा हूं जो आपको आपकी पुस्तकों में किस पृष्ठ पर चल रहा है, इसका ट्रैक रखने में मदद करता है। मैं बुकमार्क के प्रशंसक नहीं हूं, इसलिए मैंने सोचा "क्या होगा यदि मैं एक प्रोग्राम बना सकता हूं जो उपयोगकर्ता इनपुट लेगा, और उसके बाद उन्होंने लिखा पाठ की संख्या या स्ट्रिंग प्रदर्शित करें, जो इस मामले में वे पृष्ठ संख्या होगी ' फिर से चालू करें, और जब भी उन्हें आवश्यकता हो, उन्हें बदलने की अनुमति दें? " यह केवल कोड की कुछ पंक्तियां लेगा, लेकिन समस्या यह है कि अगली बार जब मैं प्रोग्राम खोलता हूं तो मैं इसे उसी नंबर को प्रदर्शित करने के लिए कैसे प्राप्त कर सकता हूं? वेरिएबल्स रीसेट हो जाएंगे, है ना? क्या इस तरह से एक चर को स्थायी रूप से बदलने का कोई तरीका है?परिवर्तनीय परिवर्तनीय

+1

यकीन है कि एक अचार फ़ाइल या डेटाबेस ... –

+0

@JoranBeasley धन्यवाद में संग्रहीत, लेकिन मैं उन दोनों में से किसी कैसे करना है यकीन नहीं है। यदि आप मुझे प्रबुद्ध कर सकते हैं, तो यह बहुत अच्छा होगा! – MalyG

+0

या बस टेक्स्ट फ़ाइल को मान लिखें और प्रोग्राम लोड होने पर टेक्स्ट फ़ाइल से उस मान को पढ़ें। यहां एक नज़र डालें: http://docs.python.org/2/tutorial/inputoutput.html – adchilds

उत्तर

5

आप मूल्यों को एक फ़ाइल में संग्रहीत कर सकते हैं, और फिर उन्हें स्टार्ट अप पर लोड कर सकते हैं। इस विधि चर फ़ाइल आवेदन के साथ प्लेन में संग्रहित है के साथ मन में

import string 

f = file("/file.txt",'r') #Opens the file 
data = f.read() #reads the file into data 
if not len(data) > 4: #Checks if anything is in the file, if not creates the variables (doesn't have to be four) 

    variable1 = "fi" 
    variable2 = 2 
else: 
    data = string.split(data,"\n") #Splits up the data in the file with the new line and removes the new line 
    variable1 = data[0] #the first part of the split 
    variable2 = int(data[1]) #Converts second part of strip to the type needed 

भालू:

कोड इस

variable1 = "fi" #start the variable, they can come from the main program instead 
variable2 = 2 

datatowrite = str(variable1) + "\n" + str(variable2) #converts all the variables to string and packs them together broken apart by a new line 

f = file("/file.txt",'w') 
f.write(datatowrite) #Writes the packed variable to the file 
f.close() #Closes the file !IMPORTANT TO DO! 

कोड की तरह कुछ हद तक लगेगा डेटा पढ़ने के लिए होगा । कोई भी उपयोगकर्ता चर को संपादित करने और बदलने के कार्यक्रमों व्यवहार

+1

हालांकि यह वास्तव में मेरी समस्या को ठीक करने के लिए उपयोग नहीं किया जाता है, यह बहुत उपयोगी है, और इसलिए अन्य लोगों को देखने के लिए, मैं मैं जवाब के रूप में इसे स्वीकार कर रहा हूँ। – MalyG

1

आपको इसे डिस्क पर स्टोर करने की आवश्यकता है। जब तक आप वास्तव में कल्पना नहीं करना चाहते हैं, तो आप संरचित डेटा को आसान बनाने के लिए बस CSV, JSON, या YAML जैसे कुछ का उपयोग कर सकते हैं।

पाइथन अचार मॉड्यूल भी देखें।

1

चर कई जीवन काल हो सकता है:

  • अगर वे कोड का एक खंड के अंदर कर रहे हैं, उनके मूल्य केवल कोड की है कि ब्लॉक के लिए मौजूद है। इसमें कार्य, लूप और सशर्त शामिल हैं।
  • यदि वे किसी ऑब्जेक्ट के अंदर हैं, तो उनका मान केवल उस ऑब्जेक्ट के जीवन के लिए मौजूद है।
  • यदि ऑब्जेक्ट को संदर्भित किया गया है, या आप अपना ब्लॉक प्रारंभ कोड छोड़ देते हैं, तो चर का मान खो जाता है।

आप विशेष रूप से कुछ के मूल्य को बनाए रखना चाहते हैं, तो आप करने के लिए है यह लागू हैं। Persistence आप डिस्क के लिए बाहर एक चर लिखने के लिए अनुमति देता है (और हाँ, डेटाबेस तकनीकी रूप से कर रहे हैं बाहर करने वाली डिस्क), और बाद में इसे पुनः प्राप्त - के बाद चर के जीवनकाल समाप्त हो गया है, या जब कार्यक्रम को पुन: प्रारंभ किया गया है।

आपके पास अपने पृष्ठ के स्थान को बनाए रखने के लिए कई विकल्प हैं - एक भारी हाथ दृष्टिकोण SQLite का उपयोग करना होगा; थोड़ा कम भारी हाथ दृष्टिकोण unpickle ऑब्जेक्ट होगा, या बस एक टेक्स्ट फ़ाइल को लिखें।