Python中如何读取配置文件和文本文件

本文介绍如何在Python中使用ConfigParser模块读取配置文件,通过实例展示了读取test_cfg.txt文件中的Notification Server和Connection部分,同时讨论了多进程安装配置文件的模拟过程。

test_cfg.txt

------------------------------------------------

[Notification Server]

URL=/mdmi/ns.py

REST_InstallProfile=/mdmi/rg9Z9UduPoEK2oQIhZFUcqeriGR12Es7/v1/profile/install

REST_RemoveProfile=/mdmi/rg9Z9UduPoEK2oQIhZFUcqeriGR12Es7/v1/profile/remove

REST_InstallProfile2=/mdmi/mZAg49qdRmAK2oQIhZFUcu2zPd7l8nQW/v1/profile/install

REST_RemoveProfile2=/mdmi/mZAg49qdRmAK2oQIhZFUcu2zPd7l8nQW/v1/profile/remove

REST_InstallProfile3=/mdmi/a51wJAWKV6gK2oQIhZFUclvo7+OoGKtu/v1/profile/install

REST_RemoveProfile3=/mdmi/a51wJAWKV6gK2oQIhZFUclvo7+OoGKtu/v1/profile/remove

REST_InstallProfile4=/mdmi/+9LHUbARmrcK2oQIhZFUckU6mhPB!NkS/v1/profile/install

REST_RemoveProfile4=/mdmi/+9LHUbARmrcK2oQIhZFUckU6mhPB!NkS/v1/profile/remove

REST_TestConnection=/mdmi/v1

Hybrid_REST_InstallProfile=/mdmi/yTjW8CeAdR8K2oQIhZFUcrSQWpw6QoAw/v1/profile/install

Hybrid_REST_RemoveProfile=/mdmi/yTjW8CeAdR8K2oQIhZFUcrSQWpw6QoAw/v1/profile/remove

Hybrid_REST_InstallProfile2=/mdmi/9JASL6VWha4K2oQIhZFUcmDrZxmNmpIG/v1/profile/install

Hybrid_REST_RemoveProfile2=/mdmi/9JASL6VWha4K2oQIhZFUcmDrZxmNmpIG/v1/profile/remove

Hybrid_REST_InstallProfile3=/mdmi/V8SFqNmmLE4K2oQIhZFUcj0exWHIjDp!/v1/profile/install

Hybrid_REST_RemoveProfile3=/mdmi/V8SFqNmmLE4K2oQIhZFUcj0exWHIjDp!/v1/profile/remove

Hybrid_REST_InstallProfile4=/mdmi/f7U3Tr+qp3AK2oQIhZFUcpN1XVjcEPk5/v1/profile/install

Hybrid_REST_RemoveProfile4=/mdmi/f7U3Tr+qp3AK2oQIhZFUcpN1XVjcEPk5/v1/profile/remove

 

[Connection]

Host=XXX.XXX.XX.XXX

Port=443


import ConfigParser
import multiprocessing
import uuid
import time
from datetime import datetime
import tmslog

CFG_DATA = "test_cfg.txt"
DEVICES_DATA = "devices_s_ard.txt"
SIMU_LOG = 'mdmi_simu_log.txt'
TEST_DATA = ConfigParser.ConfigParser()
TEST_DATA.read(CFG_DATA)

class NotificationSimu():
    def __init__(self, flag=0, acct_index=0):
        self.host = TEST_DATA.get("Connection", "Host")
        self.port = TEST_DATA.get("Connection", "Port")
        self.username = TEST_DATA.get("Connection", "Username")
        self.username2 = TEST_DATA.get("Connection", "Username2")
        self.username3 = TEST_DATA.get("Connection", "Username3")
        self.username4 = TEST_DATA.get("Connection", "Username4")
        self.password = TEST_DATA.get("Connection", "Password")
        self.wrongpassword = TEST_DATA.get("Connection", "WrongPassword")


.......................

def multiple_process_installprofile():

    #Get out devices info. from txt file
    fd = open(DEVICES_DATA, 'r')
    devices  = fd.readlines()
    fd.close()

    con_num = 35
    loop_num = 4000
    block_size = 3000
    starttime = time.time()
    stime = datetime.now()
    output  =  "mdmi REST simulator Start time : %s\n" %stime
    print output
    perf_log_content = output
    speed = 35
    sleep_round = 1
    pool = multiprocessing.Pool(processes=con_num)
    results = []
    i = 0
    for i in xrange(loop_num):
        results.append(pool.apply_async(call_rest_install, (devices[i], acct_index, False, )))
        if (i+1) % speed == 0:
            time.sleep(sleep_round)
    pool.close()
    pool.join()
    print '======================================================'
    print 'res size: %d' %len(results)
    for res in results:
        print res.get()
    print "Sub-process(es) done."
    endtime = time.time()
    etime = datetime.now()
    output = "mdmi REST simulator End time : %s\n" % etime
    print output
    perf_log_content = perf_log_content + output
    sec_cost = endtime - starttime
    output = "mdmi REST simulaotr sent %d request with time cost: %d seconds.\n" % ((i+1), sec_cost)
    print output
    perf_log_content = perf_log_content + output
    output = '-'*40 + '\n'
    print output
    perf_log_content = perf_log_content + output
    save_perf_log(SIMU_LOG, perf_log_content)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值