Python中如何实现IP和端口号可配置

在封装python模块为扩展库的过程中,发现python中没有直接读取yaml配置文件的库。
由于只需要简单配置IP和端口号,于是想通过接口来进行设置。

接口方式设置参数

话不多说,先上示例代码。

#!/usr/bin/python
# -*- coding:utf-8 -*-
import json
import sys
import requests
import logging

ip_port = {
    'ip': '127.0.0.1',
    'port': 8080
}
json_header = {
    'Content-Type': 'application/json'
}


# 设置请求IP和端口号
def set_ip_port(ip, port):
    global ip_port
    if ip:
        ip_port['ip'] = ip
    if port:
        ip_port['port'] = port


# 发送post请求
def request_post(api, params, func_name, fail_res):
    req_url_pre = 'https://' + ip_port['ip'] + ':' + str(ip_port['port'])
    req_url = req_url_pre + api
    res = requests.post(req_url, verify=False, data=json.dumps(params), headers=json_header)
    if res.status_code == requests.codes.ok:
        logging.info(func_name + ' request send success...')
        return res.json()
    else:
        logging.error(func_name + ' request send failed...')
        fail_res['errCode'] = res.status_code
        return json.dumps(fail_res, ensure_ascii=False)

先给变量一个默认值,然后通过global将变量声明为全局变量,这样就能通过参数参入的方式需要修改的变量值。

配置文件方式

XML文件

读取xml文件的库是python内置的,可以通过xml.etree.ElementTree结合xpath语法读取属性值。
例如,有xml文件配置如下:



	127.0.0.1
	8080

读取配置文件:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import xml.etree.ElementTree as etree

tree = etree.parse("conf.xml")
# 获取根节点
root = tree.getroot()
print('root.tag', root.tag)
print('ip', root[0].text)
print('port', root[1].text)

你可能感兴趣的:(Python,python,tcp/ip,开发语言)