简体   繁体   中英

Parse the file section wise in python

I have a text (abc.txt) file having the following entry in text file:

[General]
Local=C:\Work\July\
path=C:\Work\July\abc

[Field1]
BB0B2BA8--EFE4-4567-B8AE-0204D4BF9F60=

[CustDetails]
BB0B2BA8-EFE4-4567-B8AE-0204D4BF9F60=NOthing

[DirName]
8e27822e-5f46-4f41=TEST

[URLNAME]
8e27822e-5f46=https://

[DestURL]
8e27822e-5f46=some_URL

I want to parse the abc.txt file and take into variable. like in variable

MYpath = C:\Work\July\abc
custdetails= Nothing
dir_name = TEST
URL_Name = https://
DestURL = some_URL

Thanks,

Using ConfigParser:

import ConfigParser

config = ConfigParser.ConfigParser()
config.read('abc.txt')

dic = {}

for section in config.sections():
    for option in config.options(section):
        res = config.get(section, option)
        if res == '':
            continue
        dic.update({section: res})

print dic

Output:

{'DestURL': 'some_URL', 'URLNAME': 'https://', 'CustDetails': 'NOthing', 'DirName': 'TEST', 'General': 'C:\\Work\\July\\abc'}

You can use a dict here:

>>> dic = {}
with open('abc.txt') as f:
    data = f.read()
    lines = data.split('\n\n')
    for line in lines:
        line = line.split('\n')
        field = line[0].strip('[]')
        val = line[-1].split('=')[1]
        if val:
            dic[field] = val
...             
>>> dic
{'DestURL': 'some_URL',
 'URLNAME': 'https://',
 'CustDetails': 'NOthing',
 'DirName': 'TEST',
 'General': 'C:\\Work\\July\\abc'}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM