दिलचस्प पोस्ट
कोणीय 2 सेवा से अवलोकन योग्य बनाना और वापस करना क्या मैं आईओएस 5 अधिसूचना केंद्र से अपने ऐप की सूचनाओं को प्रोग्रामेटिक रूप से साफ़ कर सकता हूं? कैसे करें UISelectOne और UISelect कई घटक पूर्व में चुनते हैं च: selectItems UIScrollView decelerating निष्क्रिय करें एक <a> लिंक पर क्लिक करते समय पुष्टिकरण संवाद कैसे प्रदर्शित किया जाए? इनपुट का मूल्य बदलें, फिर जावास्क्रिप्ट में फॉर्म जमा करें रूबी: आइटम को सरणी में कैसे ढूंढें, जिसमें सबसे अधिक घटनाएं हैं? पुन: क्रम सूची तत्व – jQuery? PHP अपरिभाषित सूचकांक विंडोज थ्रेडिंग: _beginthread vs _beginthreadex बनाम CreateThread C ++ घातक त्रुटि: अपरिभाषित फ़ंक्शन को कॉल करें oci_connect () पीपीएपी अभिभावक वर्ग चर का प्रयोग कैसे पता करने के लिए कि asp.net mvc में अनुरोध AJAX है? क्या यह HTML प्रपत्र के एक्शन विशेषता के लिए रिक्त यूआरएल का उपयोग करने के लिए एक अच्छा अभ्यास है? (कार्रवाई = "") मैं कैसे पता लगा सकता हूं कि मेरा जेवीएम किस चीस्टस्टोर का प्रयोग कर रहा है?

पायथन 3 के साथ आईएनआई फाइल कैसे पढ़ा और लिखी?

मुझे Python3 के साथ INI फ़ाइल को पढ़ने, लिखने और बनाने की आवश्यकता है

FILE.INI

default_path = "/path/name/" default_file = "file.txt" 

पायथन फ़ाइल:

 # read file and if not exists ini = iniFile( 'FILE.INI' ) # Get and Print Config Line "default_path" getLine = ini.default_path # Print (string)/path/name print getLine # Append new line and if exists edit this line ini.append( 'default_path' , 'var/shared/' ) ini.append( 'default_message' , 'Hey! help me!!' ) 

अद्यतन करें FILE.INI

 default_path = "var/shared/" default_file = "file.txt" default_message = "Hey! help me!!" 

Solutions Collecting From Web of "पायथन 3 के साथ आईएनआई फाइल कैसे पढ़ा और लिखी?"

इस के साथ शुरू करने के लिए कुछ हो सकता है:

 import configparser config = configparser.ConfigParser() config.read('FILE.INI') print(config['DEFAULT']['path']) # -> "/path/name/" config['DEFAULT']['path'] = '/var/shared/' # update config['DEFAULT']['default_message'] = 'Hey! help me!!' # create with open('FILE.INI', 'w') as configfile: # save config.write(configfile) 

आप आधिकारिक कॉन्फ़िगरर्स दस्तावेज़ीकरण पर अधिक जानकारी प्राप्त कर सकते हैं।

यहाँ एक पूर्ण पढ़ा, अपडेट और उदाहरण लिखें।

इनपुट फ़ाइल, test.ini

 [section_a] string_val = hello bool_val = false int_val = 11 pi_val = 3.14 

वर्किंग कोड

 try: from configparser import ConfigParser except ImportError: from ConfigParser import ConfigParser # ver. < 3.0 # instantiate config = ConfigParser() # parse existing file config.read('test.ini') # read values from a section string_val = config.get('section_a', 'string_val') bool_val = config.getboolean('section_a', 'bool_val') int_val = config.getint('section_a', 'int_val') float_val = config.getfloat('section_a', 'pi_val') # update existing value config.set('section_a', 'string_val', 'world') # add a new section and some values config.add_section('section_b') config.set('section_b', 'meal_val', 'spam') config.set('section_b', 'not_found_val', 404) # save to a file with open('test_update.ini', 'w') as configfile: config.write(configfile) 

आउटपुट फ़ाइल, test_update.ini

 [section_a] string_val = world bool_val = false int_val = 11 pi_val = 3.14 [section_b] meal_val = spam not_found_val = 404 

मूल इनपुट फ़ाइल अछूता रहता है

http://docs.python.org/library/configparser.html

पायथन की मानक पुस्तकालय इस मामले में सहायक हो सकता है।

सामान्य config['section_name']['key'] ConfigParser सामान्य रूप से config['section_name']['key'] माध्यम से एक्सेस की आवश्यकता होती है, जो मज़ेदार नहीं है। थोड़ा बदलाव सुविधा का उपयोग कर सकता है:

 class AttrDict(dict): def __init__(self, *args, **kwargs): super(AttrDict, self).__init__(*args, **kwargs) self.__dict__ = self 

AttrDict एक ऐसा AttrDict है जिसे AttrDict से प्राप्त किया गया है जो कि दोनों शब्दकोश कुंजी और विशेषता एक्सेस के माध्यम से प्रवेश की अनुमति देता है: जिसका अर्थ है ax is a['x']

हम ConfigParser में इस वर्ग का उपयोग कर सकते हैं:

 config = configparser.ConfigParser(dict_type=AttrDict) config.read('application.ini') 

और अब हमें इसके साथ application.ini मिलता application.ini :

 [general] key = value 

जैसा

 >>> config._sections.general.key 'value' 

ConfigObj ConfigParser का एक अच्छा विकल्प है जो बहुत अधिक लचीलेपन प्रदान करता है:

  • किसी भी स्तर पर नेस्टेड अनुभाग (उप-अनुभाग)
  • सूची मूल्य
  • एकाधिक पंक्ति मान
  • स्ट्रिंग प्रक्षेप (प्रतिस्थापन)
  • स्वचालित प्रकार की जांच / रूपांतरण दोहराए गए वर्गों और डिफ़ॉल्ट मानों को सक्षम करने सहित एक शक्तिशाली सत्यापन प्रणाली के साथ एकीकृत
  • Config फाइलों को लिखते समय, ConfigObj सभी टिप्पणियों और सदस्यों और वर्गों के आदेश को सुरक्षित रखता है
  • कॉन्फ़िगरेशन फ़ाइलों के साथ काम करने के लिए कई उपयोगी विधियां और विकल्प (जैसे 'पुनः लोड' विधि)
  • पूर्ण यूनिकोड समर्थन

इसमें कुछ आकर्षित बैक है:

  • आप डिलीमीटर को सेट नहीं कर सकते, यह = … ( पुल अनुरोध ) होना चाहिए
  • आपके पास खाली मूल्य नहीं हो सकते हैं, ठीक है आप कर सकते हैं, लेकिन वे इसे पसंद करते हैं: fuabr = बजाय सिर्फ अजीब और गलत लग रहा है जो fubar